2011-04-12 454 views
0

当我任何图像上做segemtation它与背景和前景的表示返回一个图像I-E的二值图像。 现在如果我想使用的图像的背景只为任何目的.....怎么办it..i均值分割后我得到的二进制图像现在如何识别(或服用)仅背景值。 ???????在Matlab分割后如何利用背景值从图像?

回答

0

我假设你有一个灰度图像。当你的分割目标为1,背景为0时,只需进行元素明智的矩阵乘法运算即可得到目标图像。这与掩蔽相似。如果你只需要背景,你可以做(​​1 - 二进制图像),并做相似的乘法与原始图像。请记住,这是元素明智的乘法而不是矩阵乘法。

+1

你们,我有一个灰度图像,我只是想,用1来表示的背景图像(在分割后我的图像的情况)。现在我想从背景像素形成原始图像,并希望取平均值的背景像素。 – chee 2011-04-14 18:52:48

+0

如果我有命名为“IMG” ..比我可以通过使用查找语句等的ind采取背景衣被合计分割图像=找到(IMG == 1); BT它给了奇怪的事情..... – chee 2011-04-14 18:57:45

+0

@chee请添加这些意见你的问题 - 他们使它更加清晰。 – Shai 2012-12-12 16:20:26

1
% Assume you have these variables: 
% 'mask' - binary segmentation results, all 1's or 0's. 
% 'img' - original image. 
% 'bgImg' - Output, containing background only. 

bgImg = zeros(size(img)); % Initialize to all zeros. 
bg(mask) = img(mask);  % Use logical indexing. 
0

如果要衡量前景/背景区域的统计,一个有趣的选择是regionprops

% img - variable containing original grey-scale image 
% mask - binary mask (same size as img) with 0 - background 1 - foreground 

% using regionprops to measure average intensity and weighted centroid, 
% there are MANY more interesting properties ou can measure, use 
% >> doc regionprops 
% to discover them 
st = regionprops(mask + 1, img, 'MeanIntensity', 'WeightedCentroid'); 

% get BG avg intensity: 
fprintf(1, 'Avg intensity of background = %.2g\n', st(1).MeanIntensity);