我試圖做一個功能的圖像,這將給予灰度圖像,它會根據設置的閾值化的。我一整天都在這裏,但沒有成功。二值化所需的閾值
這是我實施的代碼。圖像是一個特定的圖像;不是一個變量。
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或255秒
我在做什麼錯?
什麼可能我是做錯了什麼?將該循環的結果和顯示的功能保存爲jpg文件後,再讀取它,矩陣不是二進制的。問題是什麼? –
@RyneIgnelzy你應該在問題陳述中告訴我們。您的問題顯然不在您向我們展示的代碼中,而是以jpg格式保存。保存,而不是bmp或png(tiff可以工作,但有點矯枉過正)。 – Adriaan
你不知道有多少我正在嘗試各種不同的looops,我意識到你的代碼後,這個問題似乎是將圖像保存爲jpg ......任何想法爲什麼發生這種情況? –