作者hope2801 (sexydick)
看板MATLAB
标题[讨论] matlab影像处理
时间Sun Apr 1 15:10:52 2018
抱歉又要麻烦大家了,我又来问问题了
我这次想问的是把图(为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://webptt.com/cn.aspx?n=bbs/MATLAB/M.1522566655.A.2DE.html
1F:推 carl0536: I(:,:,1)= double(logical(I(:,:,1)-0.5).*I(:,:,2)...) 04/02 15:41
2F:推 carl0536: Ir = double(logical(logical(Ir-0.5)+logical(Ig-0.5)+ 04/02 15:44
3F:→ carl0536: logical(Ib-0.5))) 04/02 15:45
4F:→ carl0536: I(:,:,1) = 1-Ir 应该就是的灰色了的部分了 04/02 15:46
5F:推 sunev: find(x(:,:,1)==x(:,:,2) & x(:,:,2)==x(:,:,3)) 04/02 15:49
6F:→ hope2801: >> l=imread('??.tif'); 04/04 20:38
7F:→ hope2801: >> for i=1:186, 04/04 20:38
8F:→ hope2801: for j=1:230, 04/04 20:38
9F:→ hope2801: if l(i,j,1)==l(i,j,2)&l(i,j,1)==l(i,j,3), 04/04 20:38
10F:→ hope2801: l(i,j,1)=255; 04/04 20:38
11F:→ hope2801: l(i,j,2)=0; 04/04 20:38
12F:→ hope2801: l(i,j,3)=0; 04/04 20:38
13F:→ hope2801: end 04/04 20:38
14F:→ hope2801: end 04/04 20:38
15F:→ hope2801: end 04/04 20:38
16F:→ hope2801: >> imshow(l) 04/04 20:38
17F:→ hope2801: 感谢上面两位大大帮忙小弟我成功了以上是我成功的程式 04/04 20:39
18F:推 carl0536: 提醒一下 在matlab里面处理影像少用for 和if会比较快 04/04 20:52