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

得知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-08-24 21:54:07

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

python 识别图像主题并切割

两种办法,一种是用百度的API,效果还可以,不过好像每天有50次的调用的限制 from aip import AipImageClassify import cv2 """ 你的 APPID AK SK """ APP_ID = 'X' API_KEY = 'X' SECRET_KEY = 'XX' client = AipImageClassify(APP_ID, API_KEY, SECRET_KEY) """

图像切割之(一)概述

图像切割之(一)概述 [email protected] http://blog.csdn.net/zouxy09 所谓图像切割指的是依据灰度.颜色.纹理和形状等特征把图像划分成若干互不交迭的区域,并使这些特征在同一区域内呈现出相似性,而在不同区域间呈现出明显的差异性.我们先对眼下基本的图像切割方法做个概述,后面再对个别方法做具体的了解和学习. 1.基于阈值的切割方法 阈值法的基本思想是基于图像的灰度特征来计算一个或多个灰度阈值,并将图像中每一个像素的灰度值与阈值相比較,最后将像素依据比較结果分

切割图像(一)概要

切割图像(一)概要 [email protected] http://blog.csdn.net/zouxy09 所谓图像切割指的是依据灰度.颜色.纹理和形状等特征把图像划分成若干互不交迭的区域.并使这些特征在同一区域内呈现出相似性,而在不同区域间呈现出明显的差异性.我们先对眼下基本的图像切割方法做个概述,后面再对个别方法做具体的了解和学习. 1.基于阈值的切割方法 阈值法的基本思想是基于图像的灰度特征来计算一个或多个灰度阈值,并将图像中每一个像素的灰度值与阈值相比較.最后将像素依据比較结果分到

图片热区比切图效果好

切片和图像热区是啥?图像切片是将很大的页面图像,切成相似拼图的那种方式,以后运用 HTML 代码,再完满的拼接起来的一种加快页面图像显现的方法,图像切片以后你还能够在不一样的切片上参加连接等等,然后到达点击不一样图像区域跳转到不一样页面的作用.图像热区是在一章图像上,制作任意多边形或许圆形的区域,并参加连接的一种方式,图像热区的优点在于,图像不必被切割,就算被点击的区域是不规则的形状,图像热区也能够很轻松的敷衍,而切片要敷衍多边形的区域,能够就需求屡次切片了,那么切片和图像热区到底有啥详细差异和

前端开发之用工作中的实例来教你切图

下面就来说说切图这点事儿吧. 一:图片怎么切? 1.切片: 先啰嗦一下几个基础概念.切片:制图软件或网页制作软件中,把图像切成几部分,一片一片晚上传,这样上传的速度比较快.切片工具主要是用来将大图片分解为几张小图片,这个功能用在网页中比较多,因为现在的网页中图文并茂,也正因如此打开一个网页所须的时间就比较长,为了不让浏览网页的人等等时间太长,所以他们将图片切为几个小的来组成. 切图原则: a.先总体,再局部.即先划分模块,再把大切片划分成小切片. a.从大小来说,如果背景图比较大,那么尽量把背景

通过ImageReader进行图像裁剪时出现NoSuchElementException异常

首先放上最初的Image工具类 package util; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.util.Iterator; import javax.imageio.ImageIO; import javax.imageio.ImageReadParam; import ja

基于直方图的图像增强算法(HE、CLAHE、Retinex)之(二)

作为图像增强算法系列的第二篇文章,下面我们将要介绍功能强大.用途广泛.影响深远的对比度有限的自适应直方图均衡(CLAHE,Contrast Limited Adaptive Histogram Equalization)算法.尽管最初它仅仅是被当作一种图像增强算法被提出,但是现今在图像去雾.低照度图像增强,水下图像效果调节.以及数码照片改善等方面都有应用.这个算法的算法原理看似简单,但是实现起来却并不那么容易.我们将结合相应的Matlab代码来对其进行解释.希望你在阅读本文之前对朴素的直方图均衡

乱谈常见图像格式

作者:马健邮箱:[email protected]发布:2013.02.15最后更新:2013.02.19 目录一.BMP二.GIF.PNG三.JPEG(JPG)四.JPEG 2000五.TIFF六.DjVu七.PDF八.小结 CEP.CV.UV中都支持多种图像格式,因此经常有人问我相同的问题:不同的图像格式究竟有什么不同?保存图像的时候究竟应该选择哪种图像格式? 本文希望能够对以上问题给出浅显的回答,当然是否已经浅到能让您理解的程度,就要看造化了. 一.BMP BMP是微软提出的一种图像格式,

第十一届机械设计大赛省赛总结

收入囊中 用imread读取图片 用nameWindow和imshow展示图片 cvtColor彩色图像灰度化 imwrite写图像 Luv色彩空间转换 初识API 图像读取接口 image = imread(argv[1], CV_LOAD_IMAGE_COLOR); CV_LOAD_IMAGE_UNCHANGED (<0) 图片怎么样就怎么读取(包括透明度这个通道) CV_LOAD_IMAGE_GRAYSCALE ( 0) CV_LOAD_IMAGE_COLOR (>0) RGB读取 建立