我有一個名爲'binary3.tiff'的圖像。Matlab:爲什麼輸入錯誤?
我問: 「在下面的函數(稱爲FUNC)圖像被給出爲雙打的矩陣。在這些圖像1表示對象和0(黑色)代表的背景。」。
應該輸入什麼內容? 我試過了:
img = imread('binary3.tiff');
img2 = double(img)/255;
newimg = func(img2);
但它不起作用。
請幫幫我。
我有一個名爲'binary3.tiff'的圖像。Matlab:爲什麼輸入錯誤?
我問: 「在下面的函數(稱爲FUNC)圖像被給出爲雙打的矩陣。在這些圖像1表示對象和0(黑色)代表的背景。」。
應該輸入什麼內容? 我試過了:
img = imread('binary3.tiff');
img2 = double(img)/255;
newimg = func(img2);
但它不起作用。
請幫幫我。
沒有什麼func
不和你得到錯誤的性質,我不能幫你了,但你可以做到這一點,而不是更多的細節:
img2 = double(img > 0);
,以確保中的值輸入圖像是二進制的,再給它一次。請注意,代替0
,當然,您可以放置任何閾值數字,低於此數字將被視爲「背景」。
這個問題可能是由於imread假定tiff圖像使用CMYK顏色空間而不是RGB顏色空間,因此使得img=imread('image.tiff')
是第三維尺寸爲4而不是3的矩陣,由於這個原因,一些函數在img
上無法正常工作,例如,image(img)
會引發錯誤,這可能是您將輸入解釋爲不正確的原因。
img=imread('image.tiff')
的格式是uint8,表示每個值都是0到255之間的整數,如果您想將它們轉化爲0到1之間的雙精度,那麼將img2=double(img)/255
作爲標量除以標量是正確的與通過標量劃分每個元素相同。最後,如果您確定您的圖像位於RGB色彩空間中,則可以簡單地通過執行img=imread('image.tif')
然後img=img(:,:,1:3)
來簡單地丟棄矩陣的第4個色彩層,如果您這樣做,並且圖像確實在RGB中,因爲image(img)
會正常工作。
「不起作用」是什麼意思?更具體地說,你期望發生什麼,而不是發生什麼 – Attila
'img'的值是什麼? 'img2'的價值是什麼? –