彩色图像--图像分割 彩色空间分割

学习DIP最后一天

转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro

开篇废话

本系列最后一篇,后续的文章将在其他系列中编写,本想把小波也放在这个系列,但感觉最近写小波有点困难,这里学习环境不好,所想去写点好玩的,比如模式识别,图像特征点什么的,希望大家继续关注。

算法原理

多通道图像的简单分割,可以给定阈值向量,然后给定范围,可以是三维的球形,或者立方体,这个就要看具体的设计了,比如举个简单的例子,给定RGB中心阈值为T? (R0,G0,B0),阈值为100,那么对于像素点(x,y)处的色彩向量I? (Rxy,Gxy,Bxy)

那么只要满足

|T? ?I? |<100

的点满足要求,为目标点,否则为背景点。

算法同样适用于其他色彩空间,但要根据具体情况来设计,所以灵活性很强。

代码

double Chanel3Distance(RGB point1,RGB point2){
    return sqrt((point1.c1-point2.c1)*(point1.c1-point2.c1)+
                (point1.c2-point2.c2)*(point1.c2-point2.c2)+
                (point1.c3-point2.c3)*(point1.c3-point2.c3));

}
void SegmentRGB(RGB* src,RGB *dst,int width,int height,RGB * color_center,double threshold){
    double distance=0.0;
    for(int i=0;i<width*height;i++){
        distance=Chanel3Distance(src[i], *color_center);
        if(distance<=threshold){
            dst[i].c1=src[i].c1;
            dst[i].c2=src[i].c2;
            dst[i].c3=src[i].c3;
        }else{
            dst[i].c1=0.;
            dst[i].c2=0.;
            dst[i].c3=0.;
        }
    }
}

结果分析

下面简单的分割和平滑,然后进行合并。

原图:

分割(使用简单的RGB模型,肤色分割点简单选取,所以效果不是很好):

平滑后合并

原图:

分割结果:

总结

至此用了70几天简单的介绍了图像处理的基础知识,特定的应用因为不具有行业通用性,所以将会有选择的进行学习,感谢自己一路坚持了几个月,感谢大家一直的支持,希望大家的技术进步。

本系列结束。

技术,待续。。。

时间: 2024-10-18 19:04:41

彩色图像--图像分割 彩色空间分割的相关文章

彩色图像处理

彩色基础 光特性是颜色科学的核心,描述彩色光的3个基本量: 辐射率:从光源流出能量的总量,用瓦特(W)度量 光强:观察者从光源接收的能量总和,用流明度表示 亮度:主观描绘子 人眼中的600-700万个锥状体分别对红色.绿色和蓝色敏感:65%对红光敏感. 33%对绿光敏感. 2%对蓝光敏感.红色.绿色和蓝色是波形,而非一个值,只是人为确定一个值而已. 三基色(RGB)原理 自然界常见的各种颜色光,都是由红(R)($\lambda$=700nm).绿(G) ($\lambda$=546nm).蓝(B

一些关于机器视觉的概念

http://blog.csdn.net/douglax/article/details/9528297 视觉引导的运动 如果你的应用需要一个视觉系统来引导机器人,那么必须知道视觉系统与运动系统是如何集成的.对于校准和操作,没集成的运动系统与视觉系统是初步的系统,机械人或机构和视觉系统是分开校准的.在操作中,一台独立的视觉系统根据在视觉坐标系统中的已知位置计算出零件位置的偏移量,然后发指令给机器人的手臂在离初始化编程的拾取位置的偏移量处拾取零件. 由于机器视觉系统可以快速获取大量信息,而且易于自

用halcon提取衣服徽章

收到一封email,有个学员求助去除衣服上纹理的干扰,然后提取衣服上徽章的边缘的方法. 我想他肯定是个很努力上进的boy,在求助以前也许已经试过各种方法,通过二值化不断的调试阈值, 寻找各种边缘检测的算子不断的实验,或者更高阶的用FFT试图去掉背景等等,我想起了我刚入门的时候 那股不达目的绝不罢休的狠劲,在网络上或者图书馆搜索相关的书籍, 试图找到答案,然而受制于自身知识体系的不完善, 并不能得到满意的答案.所以在忙完手头的工作,我认真的看了他的需求,并回复了几种方法供其参考. 来信:   小马

php实现简单的验证码功能

1.根据php中的GD库对图片进行处理,绘制出验证码的图片,code.php中2.表单界面,简单的session保存及与用户输入对比,确定是否验证正确,form.php中 <?php session_start();//必须位于脚本的最顶端 $image=imagecreatetruecolor(100, 30);//imagecreatetruecolor函数建一个真彩色图像 //生成彩色像素 $bgcolor=imagecolorallocate($image, 255, 255, 255)

第06章-图像处理及可视化(2)

[译者:这个系列教程是以Kitware公司出版的<VTK User's Guide -11th edition>一书作的中文翻译(出版时间2010年,ISBN: 978-1-930934-23-8),由于时间关系,我们不能保证每周都能更新本书内容,但尽量做到一周更新一篇到两篇内容.敬请期待^_^.欢迎转载,另请转载时注明本文出处,谢谢合作!同时,由于译者水平有限,出错之处在所难免,欢迎指出订正!] [本节对应原书中的第125页至第138页] 6.5图像源 VTK中有些图像处理对象本身并不接收任

PHP源生验证码

1.yzm.php <?php session_start();//必须位于脚本的最顶端 $image=imagecreatetruecolor(100, 30);//imagecreatetruecolor函数建一个真彩色图像 //生成彩色像素 $bgcolor=imagecolorallocate($image, 255, 255, 255);//白色背景     imagecolorallocate函数为一幅图像分配颜色 $textcolor=imagecolorallocate($ima

标定Kinect v2彩色摄像头:使用iai_kinect2,采用qhd(960*540)大小的彩色图像

开篇一作,这篇博文是纯应用的,没有任何理论说明,就当是一个实践提醒啦. 安装kinect v2相机驱动和标定程序得益于下面二位前辈的引荐工作: http://www.cnblogs.com/gaoxiang12/p/5161223.html http://www.cnblogs.com/hitcm/p/5118196.html 十分感谢! 请读者先按照上面前辈的博文安装好libfreenect2和iai_kinect2. 在iai_kinect2标定步骤中(https://github.com/

【图像算法】彩色图像分割专题八:基于MeanShift的彩色分割

>原理以前的博客中已经有对meanshift原理的解释,这里就不啰嗦了,国外的资料看这:http://people.csail.mit.edu/sparis/#cvpr07 >源码 核心代码(参考网络) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52

【图像算法】彩色图像切割专题八:基于MeanShift的彩色切割

>原理曾经的博客中已经有对meanshift原理的解释,这里就不啰嗦了.国外的资料看这:http://people.csail.mit.edu/sparis/#cvpr07 >源代码 核心代码(參考网络) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52