[討論] matlab影像處理

看板MATLAB作者 (sexydick)時間6年前 (2018/04/01 15:10), 編輯推噓4(4014)
留言18則, 3人參與, 6年前最新討論串1/1
抱歉又要麻煩大家了,我又來問問題了 我這次想問的是把圖(為rgb)的灰色系像素(包含黑、深灰、淺白、白)全部換成紅色 ,再顯示出來。 我知道要看rgb當中相同的位置的元素有沒有相同 例如黑=(0,0,0)白=(1,1,1)灰=(0.5,0.5,0.5) 但是我不知道要怎麼找出來,我嘗試用find可是不能rgb3個一起比較只能每兩個互相比較 a=find(x(:,:,1)==x(:,:,2)) 而用intersect只能找到相同的值而不是位置 想請問大家有什麼其他的方法嗎? 如果有拜託教導小弟 小弟我感激不盡 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.8.172 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1522566655.A.2DE.html

04/02 15:41, 6年前 , 1F
I(:,:,1)= double(logical(I(:,:,1)-0.5).*I(:,:,2)...)
04/02 15:41, 1F

04/02 15:44, 6年前 , 2F
Ir = double(logical(logical(Ir-0.5)+logical(Ig-0.5)+
04/02 15:44, 2F

04/02 15:45, 6年前 , 3F
logical(Ib-0.5)))
04/02 15:45, 3F

04/02 15:46, 6年前 , 4F
I(:,:,1) = 1-Ir 應該就是的灰色了的部分了
04/02 15:46, 4F

04/02 15:49, 6年前 , 5F
find(x(:,:,1)==x(:,:,2) & x(:,:,2)==x(:,:,3))
04/02 15:49, 5F

04/04 20:38, 6年前 , 6F
>> l=imread('??.tif');
04/04 20:38, 6F

04/04 20:38, 6年前 , 7F
>> for i=1:186,
04/04 20:38, 7F

04/04 20:38, 6年前 , 8F
for j=1:230,
04/04 20:38, 8F

04/04 20:38, 6年前 , 9F
if l(i,j,1)==l(i,j,2)&l(i,j,1)==l(i,j,3),
04/04 20:38, 9F

04/04 20:38, 6年前 , 10F
l(i,j,1)=255;
04/04 20:38, 10F

04/04 20:38, 6年前 , 11F
l(i,j,2)=0;
04/04 20:38, 11F

04/04 20:38, 6年前 , 12F
l(i,j,3)=0;
04/04 20:38, 12F

04/04 20:38, 6年前 , 13F
end
04/04 20:38, 13F

04/04 20:38, 6年前 , 14F
end
04/04 20:38, 14F

04/04 20:38, 6年前 , 15F
end
04/04 20:38, 15F

04/04 20:38, 6年前 , 16F
>> imshow(l)
04/04 20:38, 16F

04/04 20:39, 6年前 , 17F
感謝上面兩位大大幫忙小弟我成功了以上是我成功的程式
04/04 20:39, 17F

04/04 20:52, 6年前 , 18F
提醒一下 在matlab裡面處理影像少用for 和if會比較快
04/04 20:52, 18F
文章代碼(AID): #1Qm8N_BU (MATLAB)
文章代碼(AID): #1Qm8N_BU (MATLAB)