Установка значения каждого элемента с минимальным значением в строке равным 1, а других равным 0 в matlab? - PullRequest
3 голосов
/ 22 января 2012

Это то, что я пытаюсь сделать в MATLAB, но не могу достичь его достижения

Для каждой строки в отфильтрованном изображении присвойте значение 1 пикселям, которые имеютминимальное значение в этой строке и других пикселях в ноль

casia

Ответы [ 2 ]

3 голосов
/ 22 января 2012

Вот решение:

img = imread('http://i.stack.imgur.com/tY3YE.jpg');
img = rgb2gray(img); %# transform jpeg color image to grayscale

minValue = min(img,[],2);
%# set the pixels equal to the minimum value to 1
bw = bsxfun(@eq,img,minValue);

Когда я запускаю это на изображении, которое вы связали, я получаю

enter image description here

Что показывает, что существует множество граничных эффектов от медианной фильтрации. Удаление границы 10 пикселей, т.е. с помощью

img = img(10:end-9,10:end-9);

и снова запустив код, я нахожу

enter image description here

Что имеет немного больше смысла.

0 голосов
/ 22 января 2012

Я думаю, что вы можете достичь того, что вам нужно, с помощью:

% Obtain the minimum in each row
mn = min(I,[],2);
% Set the pixels that are minimum to one, others to zero
eq = I == repmat(mn,1,size(I,2));

Этот код предполагает, что у вас есть изображение в I.

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