Как взять значения фона с изображения после сегментации в Matlab? - PullRequest
0 голосов
/ 13 апреля 2011

когда я делаю сегментацию на любом изображении, он возвращает изображение i-e двоичное изображение с представлением фона и переднего плана. теперь, если я хочу использовать фон изображения только для каких-либо целей ..... как это сделать .. то есть после сегментации я получил бинарное изображение, теперь как определить (или взять) значения только фона.? ??????

Ответы [ 3 ]

1 голос
/ 24 сентября 2011
% 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 голосов
/ 12 декабря 2012

Если вы хотите измерить статистику областей переднего / заднего плана, интересным выбором будет 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 );
0 голосов
/ 13 апреля 2011

Я предполагаю, что у вас есть изображение в градациях серого.Если у вас есть сегментированная цель как 1, а фон как 0, тогда просто делайте матричное умножение, чтобы получить изображение цели.Это похоже на маскировку.Если вам нужен только фон, вы можете просто сделать (1 - Двоичное изображение) и сделать аналогичное умножение с исходным изображением.Помните, что это поэлементное умножение, а не матричное умножение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...