簡體   English   中英

如何在MATLAB中制作合成圖像?

[英]How can I make a synthetic image in MATLAB?

我正在使用MATLAB 2015b制作如下的合成圖像(沒有綠色圓圈)

在此處輸入圖片說明

可能很難為我塑造明星形象。 因此,我使用一個簡單的形狀作為正方形,如下代碼所示。 但是,我無法創建與示例圖像相似的強度。 如果可能的話,您能幫我制作圖像嗎? 我認為圖像具有兩個分量:高斯分布后的強度和不均勻的強度。 謝謝大家

%% Gray image
rows = 256;
columns = 256;
grayImage = ones(rows, columns, 'uint8').*200;
xCoords= [80 180 180 80 80];
yCoords = [80 80 180 180 80];
mask = poly2mask(xCoords, yCoords, rows, columns);
grayImage(mask) = 80; 
%% First component Gray+noise
im_normal=double(grayImage./max(grayImage(:)));
im_noise= imnoise(im_normal,'gaussian',0,0.02);
%% Second component: Inhomogeneous term
X = 1:rows;                           % X is a vector from 1 to imageSize
X0 = (X / rows) -0.2;                 % rescale X 
Xm = meshgrid(X0, X0);             % 2D matrices
%% Output image
Out_Img=im_noise.*Xm;
subplot(121);imshow(grayImage);
subplot(122);imshow(Out_Img,[]);

這是我目前的結果

在此處輸入圖片說明

我會嘗試以下方法:

  1. 使用高斯模糊找到恆星圖像同質場的近似值:

    均勻性= imfilter(I,fspecial('disk',15),'replicate');

  2. 從輸入圖像中減去均勻性字段。

  3. 手動分割星形

  4. 使用imhist函數和前一階段的分割蒙版計算恆星的直方圖。 將其除以直方圖的總和。 這樣,您將獲得代表恆星的概率向量。

  5. 對背景執行相同的操作-計算代表背景的概率向量。

  6. 生成輸出時:

    一種。 對於正方形內的每個像素,使用階段2中的概率矢量隨機生成灰度值。

    b。 對於每個背景像素,使用階段3中的概率矢量隨機生成灰度值。

    C。 最后-將第1階段的同質性字段添加到結果中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM