[討論] matlab影像處理

作者: hope2801 (sexydick)   2018-04-01 15:10:52
抱歉又要麻煩大家了,我又來問問題了
我這次想問的是把圖(為rgb)的灰色系像素(包含黑、深灰、淺白、白)全部換成紅色
,再顯示出來。
我知道要看rgb當中相同的位置的元素有沒有相同
例如黑=(0,0,0)白=(1,1,1)灰=(0.5,0.5,0.5)
但是我不知道要怎麼找出來,我嘗試用find可是不能rgb3個一起比較只能每兩個互相比較
a=find(x(:,:,1)==x(:,:,2))
而用intersect只能找到相同的值而不是位置
想請問大家有什麼其他的方法嗎?
如果有拜託教導小弟
小弟我感激不盡
作者: carl0536 (entanglelove)   2018-04-02 15:41:00
I(:,:,1)= double(logical(I(:,:,1)-0.5).*I(:,:,2)...)Ir = double(logical(logical(Ir-0.5)+logical(Ig-0.5)+logical(Ib-0.5)))I(:,:,1) = 1-Ir 應該就是的灰色了的部分了
作者: sunev (Veritas)   2018-04-02 15:49:00
find(x(:,:,1)==x(:,:,2) & x(:,:,2)==x(:,:,3))
作者: hope2801 (sexydick)   2018-04-04 20:38:00
>> l=imread('??.tif');>> for i=1:186,for j=1:230,if l(i,j,1)==l(i,j,2)&l(i,j,1)==l(i,j,3),l(i,j,1)=255;l(i,j,2)=0;l(i,j,3)=0;endendend>> imshow(l)感謝上面兩位大大幫忙小弟我成功了以上是我成功的程式
作者: carl0536 (entanglelove)   2018-04-04 20:52:00
提醒一下 在matlab裡面處理影像少用for 和if會比較快

Links booklink

Contact Us: admin [ a t ] ucptt.com