声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2588|回复: 22

[图像处理] 颜色提取的问题.

[复制链接]
发表于 2007-4-30 22:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
求助高手 我想把任何一个图像中的红色个提取出来 请问代码是什么,本人刚开始接触MATLB.毕业设计需要 所以请高手帮个忙 实在非常的急.最好是完整点的 我都不知道怎样把处理后的图片显示出来
回复
分享到:

使用道具 举报

 楼主| 发表于 2007-4-30 22:45 | 显示全部楼层
老师叫我自己看书 我从来没接触过 书上写的很模糊 实在很难看懂 高手帮忙 在下不尽感激
 楼主| 发表于 2007-4-30 22:57 | 显示全部楼层
高手帮个忙实在急啊 谢谢了
发表于 2007-4-30 23:01 | 显示全部楼层
原帖由 boss3271 于 2007-4-30 22:57 发表
高手帮个忙实在急啊 谢谢了


既然这么急,为何不自己动手搜索一下?请看看置顶贴:聚宝盆启发一下

ps:问题的解答置顶贴就有,自己好好找找
 楼主| 发表于 2007-4-30 23:20 | 显示全部楼层
A=imread('input.bmp');
H = size(A);
BB=repmat(255, H(1)*H(2), H(3));
C=(A(:,:,1)==0 & A(:,:,2)==0 & A(:,:,3)==255);
BB(C,1) = 0;
BB(C,2) = 0;
B = reshape(BB, H(1), H(2), H(3));
imwrite(B,'output.bmp');
我是新手看不太懂...这是蓝色的提取 ..我不知道怎样能把处理后的图象显示出来
比如A=imread('input.bmp');括号中是不是写我图像文件名和格式
还有就是怎样把处理好的图像显示出来
我就是根据这篇文章找到这论坛的 因为实在不懂 所以想请假下 麻烦了 谢谢!
 楼主| 发表于 2007-4-30 23:21 | 显示全部楼层
我照书上的程序写 也显示不出处理后的图像来 能指点下吗 实在是新手不懂
发表于 2007-4-30 23:31 | 显示全部楼层
1. 把你的图片 copy 到 matlab 安装路径 的 work 目录下;
2. 新建一个 m 文件;
3. 把以下代码 copy 到 m 文件中:
  1. A=imread('input.bmp'); %把文件名 input.bmp 换成你的图片名称
  2. imshow(A);
  3. H = size(A);
  4. BB=repmat(255, H(1)*H(2), H(3));
  5. C=(A(:,:,1)==0 & A(:,:,2)==0 & A(:,:,3)==255);
  6. BB(C,1) = 0;
  7. BB(C,2) = 0;
  8. B = reshape(BB, H(1), H(2), H(3));
  9. imwrite(B,'output.bmp'); %如果不需要把结果图片存盘,则此句可以注释掉,即在语句前面加上“%”
  10. imshow(B);
复制代码
4. 运行菜单 Debug 中的 Run (或者 Save & Run) 命令,此时需要输入存储的m文件名称,随便填入一个有效的英文名,就可以了

[ 本帖最后由 eight 于 2007-4-30 23:32 编辑 ]

评分

1

查看全部评分

 楼主| 发表于 2007-4-30 23:42 | 显示全部楼层
ans =

    11

>>
什么意思 ...不懂...
 楼主| 发表于 2007-4-30 23:45 | 显示全部楼层
好了...谢谢你了..我再去研究下 跟那位兄弟一样都是白色 的 ..谢谢你啊
发表于 2007-4-30 23:51 | 显示全部楼层
原帖由 boss3271 于 2007-4-30 23:42 发表
ans =

    11

>>
什么意思 ...不懂...


要多加一个 figure 才能使得原图不被结果图覆盖,即:

  1. A=imread('input.bmp'); %把文件名 input.bmp 换成你的图片名称
  2. imshow(A);
  3. H = size(A);
  4. BB=repmat(255, H(1)*H(2), H(3));
  5. C=(A(:,:,1)==0 & A(:,:,2)==0 & A(:,:,3)==255);
  6. BB(C,1) = 0;
  7. BB(C,2) = 0;
  8. B = reshape(BB, H(1), H(2), H(3));
  9. imwrite(B,'output.bmp'); %如果不需要把结果图片存盘,则此句可以注释掉,即在语句前面加上“%”
  10. figure;
  11. imshow(B);
复制代码


以上代码我运行后没有问题,注意 input.bmp 要求是24位位图
发表于 2007-4-30 23:53 | 显示全部楼层
原帖由 boss3271 于 2007-4-30 23:45 发表
好了...谢谢你了..我再去研究下 跟那位兄弟一样都是白色 的 ..谢谢你啊

你看看 如何对RGB图像实现基于颜色的目标提取? 这个帖子。白色的问题我给了一个说明,也给出了一个蓝色提取出来的例子
 楼主| 发表于 2007-5-1 00:20 | 显示全部楼层
Error in ==> Untitled at 4
BB=repmat(255, H(1)*H(2), H(3));
发表于 2007-5-1 00:23 | 显示全部楼层
原帖由 boss3271 于 2007-5-1 00:20 发表
Error in ==> Untitled at 4
BB=repmat(255, H(1)*H(2), H(3));

估计你的图片不是RGB的,换一个RGB的(24位位图)试试
 楼主| 发表于 2007-5-1 00:36 | 显示全部楼层
C=(A(:,:,1)==0 & A(:,:,2)==0 & A(:,:,3)==255);
BB(C,1) = 0;
BB(C,2) = 0;
B = reshape(BB, H(1), H(2), H(3));
继续问个问题 如果是红色我估计这上面改 那要怎么改呢 .指教下
我看了下这样的资料 但是不明白
H直定义在315度到360度0度到23度是红色  什么意思
发表于 2007-5-1 10:57 | 显示全部楼层
原帖由 boss3271 于 2007-5-1 00:36 发表
C=(A(:,:,1)==0 & A(:,:,2)==0 & A(:,:,3)==255);
BB(C,1) = 0;
BB(C,2) = 0;
B = reshape(BB, H(1), H(2), H(3));
继续问个问题 如果是红色我估计这上面改 那要怎么改呢 .指教下
我看了下这样的资料 但是 ...


那三个值分别对应R、G、B,红色的话就是(255,0,0)

另外一个问题不懂
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-19 08:50 , Processed in 0.089958 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表