Я пытаюсь создать функцию, которая будет получать изображение в градациях серого, которое будет бинаризироваться в зависимости от установленного порога. Я был весь этот день, но не успел.Бинаризация изображения с желаемым порогом
Вот код, который я внедрил. Когда изображение является конкретным изображением; Не переменная.
function [ output_args ] = thresholdImg(X)
A=imread('car_gray.jpg');
B=zeros(size(A,1),size(A,2));
for l=1:size(A,1)
for m=1:size(A,2)
if(sum(A(l,m,:))>X)
B(l,m)=1;
end
end
end
B=logical(B);
figure,imshow(B);
Я не хочу использовать imbinarize
. Я хочу, чтобы это было подготовлено вручную, а код был как можно более простым. Вывод изображения выглядит так, как будто он двоичный, но когда вы печатаете матрицу, вы видите, что значения не только 0 и 1, либо 255s
Что я делаю неправильно?
Что может я делать неправильно? После сохранения результатов этого цикла и функции, которую вы показали в файл jpg, а затем прочитайте ее, матрица не является двоичной. В чем проблема? –
@ RyneIgnelzy вы должны были сказать нам, что в вопросе. Ваша проблема, по-видимому, не в коде, который вы нам показали, а в сохранении его как jpg. Сохраните вместо этого как bmp или png (tiff будет работать, но будет чуть-чуть перебор). – Adriaan
Вы не представляете, насколько я убивал свою голову, пробуя всевозможные леопы, и я понял после вашего кода, что проблема заключается в сохранении изображения в jpg ... любая идея, почему это происходит? –