對於jpg格式的圖像,和進行了二值化的圖像進行相乘?怎麼不行啊下面是程序和錯誤警告?請大神幫幫忙啊 時間不夠了..沒有財富值了,,欠着可以不。。。 A=imread('26.jpg');%讀取原圖像 B=rgb2gray(A);%將原圖像轉換爲灰度圖像 t=graythresh(B);%計算閾值t C=im2bw(B,t);%根據閾值二值化圖像 D=imfill(C,8,'holes');%對二值化後的圖像填充肺實質 E=D-C;%得到肺實質的圖像E F=imfill(E,8,'holes');%填充肺實質空洞 G=B.*F; imshow(A);figure,imshow(G); 警告: ??? Error using ==> times Integers can only be combined with integers of the same class, or scalar doubles. Error in ==> Untitled15 at 8 G=B.*F;
A=imread('26.jpg');%讀取原圖像 B=rgb2gray(A);%將原圖像轉換爲灰度圖像 t=graythresh(B);%計算閾值t C=im2bw(B,t);%根據閾值二值化圖像 D=imfill(C,8,'holes');%對二值化後的圖像填充肺實質 E=D-C;%得到肺實質的圖像E F=imfill(E,8,'holes');%填充肺實質空洞 B=double(B); %%%%%%%%%%%%%%%注意這個地方,必須換成double類型 G=B.*F; imshow(A);figure,imshow(G);
恩恩 可以了 不過爲什麼感覺G和F一樣呢?
這個我就不太明白了,我只知道你的錯誤原因是由於 乘法時類型不一致引起的,並且在進行圖像處理時我們通常就要進行 double 的轉換。 1:爲什麼 G F一樣,是由於你用二值化矩陣乘以圖像矩陣當然結果就是二值化圖像了
不是矩陣對應元素相乘 然後二值化的白色是1 黑色是0 那麼得到的應該是把原圖像 我所需要的那個目標分離的部分啊?怎麼回事二值化的圖像呢??不太理解
對不起,剛纔那個理解錯了,“二值化矩陣乘以圖像矩陣當然結果就是二值化圖像了”
恩恩??什麼意思啊 我沒有財富值了 不能追問了 不能理解二值化矩陣乘以圖像舉證結果是二值化圖像 這句話
對不起,剛纔那個理解錯了 出來的結果是個灰度矩陣。但是其餘地方是黑色的, 你給我發張圖,我給你看結果!
A=imread('29.jpg');%讀取原圖像
BB=rgb2gray(A);%將原圖像轉換爲灰度圖像
B= im2double(BB);
t=graythresh(B);%計算閾值t
C=im2bw(B,t);%根據閾值二值化圖像
D=imfill(C,8,'holes');%對二值化後的圖像填充肺實質
E=D-C;%得到肺實質的圖像E
F=imfill(E,8,'holes');%填充肺實質空洞
G=B.*F;
imshow(A);figure,imshow(G);
這個是程序,你看看,第二張圖就滿足你的要求了,不過背景是黑色的而已。你可以把背景搞成白色的,不過有些噪聲,建議你再濾波一下
- 提問者評價
-
謝謝!! 真的幫了我們大忙了!!