• 图像像素操作 几何运算-加减乘除 逻辑运算-与或非取反 像素读写 通道混合与调整 对比度与亮度调整 图像变换 插值(zoom in或out) 旋转(rotate) 透视变换 错切变换 翻转 像素统计 计算均值与方差 计算直方...

    图像像素操作

    • 几何运算-加减乘除

    • 逻辑运算-与或非取反

    • 像素读写

    • 通道混合与调整

    • 对比度与亮度调整

    图像变换

    • 插值(zoom in或out)

    • 旋转(rotate)

    • 透视变换

    • 错切变换

    • 翻转

    像素统计

    • 计算均值与方差

    • 计算直方图

    • 计算最大最小

    • 计算像素内方差

    色彩空间

    • RGB

    • HSL

    • YUV

    • YCrCb

    • 色彩空间转换

    • 灰度转换

    • 调整饱和度与亮度

    • 主色彩提取与分析

    卷积图像处理

    -空间域卷积

    -频率域卷积

    -FFT空域到时域转换

    -模糊

    -边缘提取

    -去噪

    -增强

    -直方图均衡化

    -直方图反向投影

    形态学处理

    -腐蚀

    -膨胀

    -开闭操作

    -形态学梯度

    -顶帽

    -黑帽

    -内梯度与外梯度

    图像分割

    -K-Means

    -Mean-Sift

    -分水岭

    -Fuzzy-C Means

    -GMM

    -Graphic Cut

    -区域生长

    特征提取

    -SIFT

    -SURF

    -LBP

    -HOG

    -Haars

    -Blob

    -DOG或者LOG

    -金字塔

    -Haars Corner

    -Shi-Tomasi Corner

    -Hessian

    二值图像

    -全局阈值二值化

    -局部阈值二值化

    -轮廓提取

    -区域测量

    -几何矩特性

    -连通区域计算

    -泛洪填充

    -霍夫变换

    -距离变换

    -分水岭分割

    -链式编码

    -骨架提取

    -欧拉数计算

    对象识别与匹配

    • 直方图匹配

    • 相关性匹配

    • 模板匹配

    • KNN

    • SVM

    计算机视觉深度学习后续补充…

    展开全文
  • 本文由本文由 \color{blue}{\bf本文由} @DavidHan@DavidHan\color{red}{\it @David Han}出品,转载请注明出处出品,转载请注明出处\color{blue}{ \bf出品 ,转载请注明出处}  文章链接:文章链接:\color{green}{\bf...

        本文由@DavidHan@DavidHan,出品,转载请注明出处
        文章链接:http://blog.csdn.net/David_Han008/article/details/78883641

    前言
    最近这段时间,导师这边有个人脸识别做跟随移动的机器人,想利用这个机会总结一些关于图像处理的基础知识
    实践部分
    这部分,主要写利用ROS在phil333的代码基础上,添加了跟随功能,以及解决,多级控制的的方法,来实现安卓控制和人脸跟随的两个级别的控制。
    原作者的github:点击这里
    用法:打开摄像头之后,直接roslaunch face_detection face_tracking.launch 就可以了。 在使用的时候,会遇到face_tracking的包的话题,没办法映射,因此应该在cfg当中修改。如下图所示:
    这里写图片描述
    原作者代码解析:
    1、 在发布图像方面:
    phil333默认的初值是0也就是不发布图像,但是我们需要发布图像,因此这个地方应该设置成3
    这里写图片描述
    在发布的msg当中,作者已经通过 std_msgs::Int32MultiArray 这个数据,将所有的数据存储下来,数据第0位:帧率。第1位:图片当中脸的个数。第2位:图像列数,第3位:图像的行数,第4位,脸的ID 第5位,框住同一张脸的数量。第6位,框的左上角x,第7位,框右上角y,第8位,框的宽度,第9位,框的高度。这个设计真的很贴心,而且最后在发布topic的时候,也可以产生compress压缩图像的topic ,这样我就可以通过手机来订阅这个图像。从而在安卓手机上显示,最后我吧我修改后的代码上传到github上面。
    2、opencv测试版本
    还需要注意的一点是,安装的opencv版本是2.4.13的版本,上是通过的,如果cv_bridge没有找到opencv的安装的位置的话,就将整个/usr/local/include/openc和/usr/local/include/opencv2 复制到/usr/include/opencv /usr/include/opencv2,使用的命令是cp -r
    这里写图片描述
    扩展:如果在ROS当中eigen出现问题的话,就用下面:
    这里写图片描述

    一、添加人脸跟随左转右转
    添加的原理:
    这里写图片描述
    原作者的msg已经提供我们需要使用的量。我们使用的,就是x,框的width,以及图像的cols(列数),我们可以通过x+width/2来求出图像中心的位置,通过质心的位置,判断质心是否超过我们设置的阈值,然后来来发布速度。这里发布速度的频率是是根据帧率来确定的。也就是你没是被一张图片,发现他是一张人脸,然后在这张上面画一个框,,提取出框的坐标,来发布左转或者右转的命令。
    最后为了防止,当图像中没有脸的时候,我们利用上面的msg进行判断,如果没有脸的时候,发布速度是0.
    二、解决遥控和人脸识别控制的优先级问题
    问题简述:

    这里写图片描述
    解决问题的总体的思路:
    如何判断,是否有安卓手机发布的速度值
    尝试过的解决方案:
    1、通过nodename来判断
    刚开始的时候,也尝试过利用Mux来进行优先级,进行设置。也尝试股哟,来判断订阅一个node的名字,判断时候有这个节点的名字,但是这种方案,有个不好的时候,就是当你的安卓app退出之后,这个节点的名字仍然存在,在使用getsubscriberNumber,也查阅了相关API,但是反馈的数值一直不是很准确,姑此方案舍弃
    2、通过mux来判断
    mux,感觉挺复杂的,看了wiki的介绍,感觉理解需要一些时间,我尝试过,采用两个topic,最后映射成一个topic,感觉意义不大,姑此方案舍弃
    3、通过订阅这个话题,然后来判断是否需要数据替换。
    这种方案测试成功:
    大体的思路:
    这里写图片描述
    代码逻辑框图:
    这里写图片描述
    核心代码:

     //这里的
    image.cols*image*row是640*480
    //printf("faces[0].x:%d",faces[1].x);
     /*
    如果没有框的时候,也就是data=0的时候,发布速度是0
    如果有框的data的时候,发布速度是+
    如果data
    */
    double j_people_num,j_b_x,j_b_width,j_p_width,OFFSET;
    j_people_num=myMsg.data[1];//人的个数
    j_b_x=myMsg.data[6];//x
    j_b_width=myMsg.data[8]/2;//B一半宽
    j_p_width=myMsg.data[2]/2;//P一半宽
    OFFSET=50;//范围
    //std::cout<<"j_b_x+j_b_width:"<<j_b_x+j_b_width<<"j_p_width+OFFSET"<<j_p_width+OFFSET<<std::endl;
    //std::cout<<"twi.angular.z="<<twi.angular.z<<std::endl;
    //如果这两组数据都不存在,那么进行下面的步骤
    twi.linear.x=joy_twi.linear.x;
    twi.angular.z=joy_twi.angular.z;
    if((joy_twi.angular.z==0)&&(joy_twi.linear.x==0))//如果说,是joy=0
    {
    //进行图像判断
    if (j_people_num==0)
    {
     twi.angular.z=0;
    }
    if (j_people_num>0)
    {
      if((j_b_x+j_b_width)<=(j_p_width+OFFSET)&&(j_b_x+j_b_width)>=(j_p_width-OFFSET))
       {
        twi.angular.z =0;
       }
       if((j_b_x+j_b_width)<(j_p_width-OFFSET))
       {
       twi.angular.z=0.6;
       }
       if((j_b_x+j_b_width)>(j_p_width+OFFSET))
       {
       twi.angular.z=-0.6;
       }
    }
    //joy_twi.angular.z=twi.angular.z;//进行数据替换
    //joy_twi.linear.x=twi.linear.x;
    }
    veb_pub_.publish(twi);//发twi

    具体的代码,详见github。
    三、添加人脸识别之后说欢迎光临
    问题简述:希望在人脸识别之后,播放欢迎光临
    问题解决办法:利用科大讯飞的语音识别的PKG,xfei_asr中的tts_subscribe_speak.cpp
    这里写图片描述
    只是在人脸识别之后,框住框了之后,便开始说欢迎光临
    这里写图片描述
    具体的代码,详见github。

    展开全文
  • 1、数字图像: 数字图像,又称为数码图像或数位图像,是二维图像用有限数字数值像素的表示。数字图像是由模拟图像数字化...2、数字图像处理包括内容: 图像数字化;图像变换;图像增强;图像恢复;图像压缩编码...




    1、数字图像:

    数字图像,又称为数码图像或数位图像,是二维图像用有限数字数值像素的表示。数字图像是由模拟图像数字化得到的、以像素为基本元素的、可以用数字计算机或数字电路存储和处理的图像。


    2、数字图像处理包括内容:

    图像数字化;图像变换;图像增强;图像恢复;图像压缩编码;图像分割;图像分析与描述;图像的识别分类。


    3、数字图像处理系统包括部分:

    输入(采集);存储;输出(显示);通信;图像处理与分析。


    4、从“模拟图像”到“数字图像”要经过的步骤有:

    图像信息的获取;图像信息的存储;图像信息处理;图像信息的传输;图像信息的输出和显示。


    5、数字图像1600x1200什么意思?灰度一般取值范围0~255,其含义是什么?

    数字图像1600x1200表示空间分辨率为1600x1200像素;灰度范围0~255指示图像的256阶灰阶,就是通过不同程度的灰色来来表示图像的明暗关系,8bit的灰度分辨率。 


    6、图像的数字化包括哪两个过程?它们对数字化图像质量有何影响?

    采样;量化  

    采样是将空间上连续的图像变换成离散的点,采样频率越高,还原的图像越真实。量化是将采样出来的像素点转换成离散的数量值,一幅数字图像中不同灰度值得个数称为灰度等级,级数越大,图像越是清晰。


    7、数字化图像的数据量与哪些因素有关?

    图像分辨率;采样率;采样值


    8、什么是灰度直方图?它有哪些应用?从灰度直方图中你可可以获得哪些信息?

    灰度直方图反映的是一幅图像中各灰度级像素出现的频率之间的关系

    它可以用于:判断图像量化是否恰当;确定图像二值化的阈值;计算图像中物体的面积;计算图像信息量。

    从灰度直方图中你可可以获得:

    暗图像对应的直方图组成成分几种在灰度值较小的左边一侧  

    明亮的图像的直方图则倾向于灰度值较大的右边一侧 

    对比度较低的图像对应的直方图窄而集中于灰度级的中部 

    对比度高的图像对应的直方图分布范围很宽而且分布均匀


    9、什么是点处理?你所学算法中哪些属于点处理?

    在局部处理中,输出值仅与像素灰度有关的处理称为点处理。如:图像对比图增强,图像二值化。


    10、什么是局部处理?你所学算法中哪些属于局部处理?

    在对输入图像进行处理时,计算某一输出像素值由输入图像像素的小领域中的像素值确定,这种处理称为局部处理。如:图像的移动平均平滑法,空间域锐化法。


    ————图像增强—————–空域——————平滑去噪—————–


    11、图像增强的目的是什么?

    图像增强的目的是要改善图像的视觉效果,针对给定图像的应用场合,有目的的增强图像的整体或局部特性,将原来不清晰的图像变得清晰或增强某些感兴趣的特征,扩大图像中不同物体的特征之间的差别,抑制不感兴趣的特征,使之改善图像质量、丰富信息量,将强图像判读和识别效果,满足某些特征分析的需求。


    12、什么是灰度图像的直方图?简述用它可以简单判断图像质量? 

    灰度直方图定义为数字图像中各灰度级与其出现的频数间的统计关系,它能描述该图像的概貌,例如图像的灰度范围,每个灰度级出现的频率,灰度级的分布,整幅图像的平均明暗和对比度等


    13、常用图像增强方法有哪些?

    图像的线性变换;图像的非线性变化;图像的直方图均衡化和规定化。


    14、“平均模板”对图像做哪种处理?写出 3x3和5x5“平均模板”?

    抑制噪声,改善图像质量


    15、“中值滤波”对图像做哪种处理?是如何运算的?

    中值滤波是对一个滑动窗口内的诸像素灰度值排序,用其中值代替窗口中心像素的灰度
    值的滤波方法,它是一种非线性的平滑法,对脉冲干扰及椒盐噪声的抑制效果好,在抑
    制随机噪声的同时能有效保护边缘少受模糊。


    16、什么叫点处理、局部处理、全局处理?3x3平均模板、直方图修正、灰度反转各属于哪种处理?

    点处理:输出值仅与像素灰度有关的处理称为点处理。(直方图修正)

    局部处理:计算某一输出像素值由输入图像像素的小领域中的像素值确定,这种处理称为局部处理。(灰度反转)

    全局处理:图像某一像素灰度的变化与图像全部像素灰度值有关。(3x3平均模板)


    ————-图像变换———-频域处理—————频域————–


    17、常用图像变换算法:

    图像的几何变换(图像畸变校正、图像缩放:双线性插值、旋转、拼接)

    图像变换(傅立叶、余弦、沃尔什-哈达玛、K-L变换、小波变换)

    图像频域处理(增强算法:高频率提升、同态滤波;平滑去噪:低通滤波)


    18、为什么要进行图像变换?各种变换应用在图像什么处理上?

    图像变换在数字图像处理与分析中起着很重要的作用,是一种常用的、有效的分析手段。图像变换的目的在于:使图像处理问题化;有利于图像特征提取;有助于从概念上增强对图像信息的理解。


    19、简述空域滤波跟频域滤波的不同

     空域法:直接对图像的像素灰度进行操作。常用算法:图像的灰度变换;直方图修正(均衡化、规定化);平滑和锐化处理;彩色增强。

    频域法:在图像的变换域中,对图像的变换值进行操作,然后经逆变换获得所需要的增强结果。常用算法:低通滤波;高频提升滤波;同态滤波。


    20、频域进行图像增强、去噪、边缘检测分别用哪种滤波器?

    增强————同态滤波器

    去噪————低通滤波器

    边缘检测——高通滤波器


    21、频域处理图像的步骤:

    a.清除噪声,改善图像的视觉效果     

    b.突出边缘有利于识别和处理


    ————————- 图像复原——————————————–

    常用图像变换算法:

    (1) 逆滤波;  (2)维纳滤波(Wiener Filter); (3)盲卷积


    22、什么叫图像复原?与图像增强有什么区别?

    图像在形成、传输和记录中,由于成像系统、传输介质和设备的不完善,导致图像质量下降,这一现象称为图像退化。

    图像复原和图像增强是有区别的,虽然二者的目的都是为了改善图像的质量,但图像增强不考虑图像是如何退化的,只通过试探各种技术来来增强图像的视觉效果。因此,图像增强可以不顾增强后的图像是否失真,只要看着舒服就行。而图像复原则完全不同,需知道图像退化的机制和过程等先验知识,据此找出一种相应的逆过程解算方法,从而得到复原的图像。如果图像已退化,应先做复原处理,再做增强处理。


    23、说出几种图像退化:

    图像模糊、失真、有噪声等


    24、什么是维纳滤波器?

    是一种以最小平方为最优准则的线性滤波器,在一定的约束条件下,其输出与给定函数的差的平方达到最小,通过数学运算最终可变为可变为一个拖布列兹方程的求解问题,是利用平稳随机过程的相关特性和频谱特性混有噪声的信号进行滤波。


    25、说出几种常用的图像复原方法?

    代数恢复方法:无约束复原;约束最小二乘法  

    频域恢复方法:逆滤波恢复法;去除由均匀运动引起的模糊;维纳滤波复原法


    ———————————图像压缩编码———————-

    常用图像变换算法:

    (1)哈夫曼编码;(2)算术编码;(3)预测编码;(4)变换编码 


    26、图像为什么可以压缩?(即数字图像中存在哪几种冗余?) 

    图像数据之所以可以被压缩,是因为数据中存在着冗余。  在图像压缩中,有三种基本的数据冗余:编码冗余;像素间冗余;视觉冗余。


    27、什么是有损和无损压缩?

    无损压缩:是对文件本身的压缩,和其它数据文件的压缩一样,是对文件的数据存储方式进行优化,采用某种算法表示重复的数据信息,文件可以完全还原,不影响文件内容,对于数字图像而言,也不会使图像细节有任何损失。  

    有损压缩:是对图像本身的改变,在保存图像时保留了较多的亮度信息,而将色相和色纯度的信息和周围的像素进行合并,合并的比例不同,压缩的比例也不同,由于信息量减少了,所以压缩比可以很高,图像质量也会相应的下降。


    28、霍夫曼编码算法的基本思想是什么? 

    是根据源数据符号发生的概率进行编码的。在源数据中出现概率越大的符号,分配的码字越短;出现概率越小的信号,其码长越长,从而达到用尽可能少的码表示源数据。


    29、损和有损预测编码算法不同之处?各在哪个环节对数据实现了压缩?

    无损(亦称无失真、无误差、信息保持)编码中删除的仅仅是图像数据中冗余的数据,经解码重建的图像和原始图像没有任何失真。  

    有损(亦称有误差、有失真)编码是指解码重建的图像与原图像相比有失真,不能精确的复原,但视觉效果上基本相同,是实现高压缩比的编码方式。


    30、简述统计编码、算术编码、预测编码、变换编码算法的基本原理

    统计编码:根据信源的概率分布可变长码,使平均码长非常接近于熵。 

    算数编码:利用编码符号的联合概率,用一个单独的浮点数来代替一串输入符号。 

    预测编码:不是直接对信号编码,而是对图像预测误差编码。实质上是对新的信息进行编码,以消除相邻像素之间的相关性和冗余性。  

    变换编码算法:是通过正交变换把图像从空间域转化为能量比较集中的变换域系数,然后对变换系数经行编码,从而达到压缩数据的目的。


    ————————–图像边缘检测、分割—————————

    图像处理常用算法:

    (1)边缘检测:Canny 算子、Laplacian算子、Sobel 算子 

    (2)Hough变换检测直线和圆算法  

    (3)图像分割:阈值分割算(也叫二值化)、区域分割算法 :区域生长法、分裂合并法、空间聚类法。


    31、说出几个常用的边缘检测算子:

    Canny 算子、Laplacian算子、Sobel 算子


    32、分别说出下面四种模板分别实现平滑去噪(低通滤波器)、图像锐化(梯度法)、边缘检测(高通滤波器)哪种处理?





    附加:

    1、灰度图像跟彩色图像:

    灰度图像:是一个二维的灰度(亮度)函数f(x,y)

    彩色图像:由三个二维灰度函数f(x,y)组成。三个是RGB或者HSV


    2、图像处理:

    从图像到图像:从图像到经过加工的另一图像

    一个决策:将一幅图像转化为一种非图像的表示


    3、相邻像素:

    四邻域:


    对角领域:


    八领域:



    4、像素的连接、邻接、与连通

    邻接adjacency:仅考虑像素间的空间关系 

    由像素间的度量关系知:

    四领域也可以定义为:

    八领域也可以定义为:

    连接connectivity

    空间关系:满足邻接

    灰度关系:灰度值是否满足某个特定的相似准则,用V来表示这个准则。

                            

    4-连接:2个像素p和r在V中取值且r在p的4邻域中

    8-连接:2个像素p和r在V中取值且r在p的8邻域中

    m-连接(混合连接):2个像素 p 和 r 在V 中取值,且满足下面条件之一即可

    1、r在p的4领域中。
    2、r在p的对角领域中且p的4领域与r的4邻域的交集是空集。如下图所示:eg:彩色图像中左边是m-连接,右边不是。


                             



    5、像素间的距离

    3个像素p,q,r,分别具有坐标(x, y),(s, t),(u, v),度量函数记为D。

    像素间距离的性质:

    1>D(p,q)>=0 两个像素之间的距离总是正的

    2>D(p,q)=D(q,p) 距离与起终点的选择无关

    3>D(p,R)<=D(p,q)+D(q,r) 最短距离是沿直线的

    距离度量函数:

    1>欧氏距离:距离p小于或者等于某一值是:以p为原点的圆


    2>城市街区距离:距离小于或者等于某一值是以p为中心的菱形


    3>棋盘距离:距离p小于或者等于某一值是以p为中心的正方形


                                         

























            转载来源于    https://blog.csdn.net/strive_0902/article/details/78026816
    
    展开全文
  •  主要记载学习数字图像处理基本知识,仅供参考。 目录 一、什么是图像处理? 二、图像的数字化表达 三、数字图像处理基本知识 一、什么是图像处理?  图像处理就是对图像信息进行加工处理,满足实际的...

     

     主要记载学习数字图像处理的基本知识,仅供参考。

    目录

    一、什么是图像处理?

    二、图像的数字化表达

    三、数字图像处理的基本知识


    一、什么是图像处理?

         图像处理就是对图像信息进行加工处理,满足实际的应用需求。

    图像处理技术分为两大类:

    • 模拟图像处理
    • 数字图像处理 (本文重点)

         数字图像处理就是利用数字计算机或者其他高速、大规模集成数字硬件,对从图像信息转换来的数字信号进行某些数字运算或者处理,以提高图像的质量。

    二、图像的数字化表达

      1、图像的空间表达式:

                                                 I=f(x,y,z,\lambda ,t)

            其中,I为图像像素点的强度,(x,y,z)代表图像像素的空间坐标,λ为波长,t为时间。上式为活动的、彩色的、三维的视频图像表达式。因此,对于

    • 静止图像➡与t无关
    • 单色图像➡与λ无关
    • 平面图象➡与z无关

    因此,我们主要讨论的平面的、静止的、单色的图像表达式为:

                                                                   I=f(x,y)

       2、图像采样

       

          为了适应数字计算机的处理,必须对连续图像函数进行空间和幅值数字化。空间坐标(x,y)的数字化称为图像采样,而幅值数字化被称为灰度级量化。经过数字化后的图像成为数字图像。

      3、数字图像的主要表示方法

       1)灰度图像的阵列表示法

             设连续图像f(x,y)按等间隔取样,排成M\times N阵列(一般取方阵列N\times N),如下图所示

              图像阵列中每个元素(“点”)都是离散值,称为像素(pixel)。一般取阵列N 和灰度级C都是2的整数幂。即取N=2^{n}C=2^{n}.

      2) 二值图像表示法

           二值图像:就是只有黑白两个灰度级,即像素灰度级非1即0.如文字图片。

    4、描述数字图像的基本参数

      1)分辨率

    图像分辨率:数字化图像的大小,对原始图像的采样分辨率,即该图像水平和垂直方向的像素个数。

    屏幕分辨率:显示器屏幕上的最大显示区域,即水平与、垂直方向的像素个数。

    像素分辨率:像素的宽和高之比一般为1:1

       2)图像深度

               图像深度:也称图像灰度、颜色深度。表示数字位图图像中每个像素上用于表示颜色的二进制数字位数。

               显示深度:表示显示器上每个点用于显示颜色的二进制数字位数。

                 如显示器的显示深度小于数字图像的深度,就会使数字图像颜色的显示失真。

    3)图像文件大小

          用字节表示图像文件大小时,一副未经压缩的数字图像的数据量大小计算如下:

             图像数据量大小=像素总数\times图像深度\div8     单位:BYTE

      例如:一副640x640的256色图像为640x480x8/8=307200字节。

    三、数字图像处理的基本知识

    1、数字图像处理的几个基本目的

      a) 以人为最终的信息接收者,其实主要目的是改善图像的质量

     b)以机器为对象, 目的是使机器或计算机能自动识别目标,称为图像识别

      c)利用计算机系统解释图像,实现类似人类视觉系统理解外部世界,被称为图像理解或计算机视觉。其正确的直接要有知识的引导,与人工智能等学科有密切联系。

     2、数字图像处理的基本特点

    • 处理的大多是二维信息,数据量大
    • 数字图像传输占用的频带较宽
    • 数字图像中像素间的相关性较大,冗余比较多,有利于压缩。
    • 数字处理技术综合性强
    • 图像信息理论与通信理论密切相关
    • 数字图像处理后很多情况是给人观察和评价的,因此受人的因素影响较大。

    3、数字图像处理的主要研究内容

      a) 图像变换:如傅里叶变换、沃尔什变化、离散余弦变换等间接处理技术,将空间域的处理转换为变换域处理,不仅可以减少计算量,而且可以获得更有效的处理。目前小波变换在时域和频域中都具有良好的局部化特征,应用广泛。

                                                                  (Matlab实现的傅里叶变换) 

      b)图像压缩编码:图像压缩编码技术可以减少图像的数据量,以便节省图像传输、处理时间和减少存储器容量。

      c)图像增强和复原:目的是提高图像的质量,如去除噪声、提高清晰度等。图像增强不考虑图像降质的原因,突出图像中感兴趣的部分。如强化图像高频分量,可使图像中物体轮廓清晰,细节明显。

                  (图像复原)                                                                                           (图像增强)   

     d)  图像分割:图像分割是数字图像处理中的关键技术之一。图像分割是将图像中有意义的特征部分提取出来,其有意义的特征有图像中物体的边缘、区域等,这是进一步进行图像识别、分析和理解的基础。

    e) 图像描述:图像描述是图像识别和理解的必要前提。二值图像可用几何特性描述:如边界描述和区域描述。

    f)  图像分类:图像分类(识别)属于模式识别的范畴,其主要内容就是对图像经过某些出来后进行判决分类。

       图像分类常用方法:

    • 统计模式分类和句法模式分类
    • 模糊模式识别和人工神经网络模式分类  

    4、数字图像处理的研究方法

      数字图像处理研究的两个不同层次

    • 人作为图像的接收者(Human readable)

             图像处理研究的目的(包括获取、传输、处理、再现等)为更好满足人类视觉感知的要求,帮助人类改善其视觉能力---传统的图像处理。

    • 计算机代替人作为图像的接收者(Machine readable) 

            由计算机实现人类视觉感知的功能,解决计算机视觉问题。利用模式识别、人工智能方法分析、理解和辨识图像的内容,解决图像认知问题。例如,图像分割文字识别、人体鉴别等问题。

    展开全文
  • 图像处理基础知识总结(1)前言:从接触图像处理、生物特征识别、视频编解码、机器学习已两年有余,还没有系统的总结过,正好最近刷一下Tsinghua的Tipa课件和PKU的Digital Image Processing,对以前的图像处理基础...

    图像处理基础知识总结(1)

    前言:从接触图像处理、生物特征识别、视频编解码、机器学习已两年有余,还没有系统的总结过,正好最近刷一下Tsinghua的Tipa课件和PKU的Digital Image Processing,对以前的图像处理基础知识做一些回顾,整理成笔记形式,代码和示例基于matlab给出。主要包含内容:

    • 原理总结
    • 部分matlab实现
    • matlab源代码解析

    1.图像坐标变换

    • 旋转
    • 尺度(缩放)
    • 平移
    • 错切
    • 反射
    • 投影
    • 反变换

    1.1 旋转

    原理

    绕原点逆时针旋转θ度角的变换公式是x′=x cosθ − ysinθ与y′=xsinθ+ycosθ,在二维空间中用矩阵表示为:
    cmd-markdown-logo

    但是为了可以表示仿射变换,需要使用齐次坐标,常见的矩阵变化都是在三维下进行的,在矩阵中增加一列与一行,除右下角的元素为1外其它部分填充为0,通过这种方法,所有的线性变换都可以转换为仿射变换。此时旋转矩阵如下所示

    logo

    仿射变换:包含平移及线性映射,为了使矩阵乘法可同时实现这两个功能,需要所有向量在其末端扩长 “1”且所有矩阵都于底部添加一排零,右边扩长一列转换向量,及右下角添加一个 “1”。
    注:仿射变换具体请参考:wiki_仿射变换

    MATLAB 实现

    利用花花公子杂志上的Lean的部分图像进行示例(-.- 关键部分都被数字图像处理的作者们截掉了,只有一张lean的脸保留了下来。。。。天真的我),matlab中图像旋转很简单,调用imrotate函数即可

    clc;clear;close all;
    %% image rotate
    img = imread('/Users/Documents/MATLAB/lena.jpg');
    rotateImg = imrotate(img,30); 
    figure;
    subplot(1,2,1),imshow(img);
    subplot(1,2,2),imshow(rotateImg);

    效果如下:可以看到图像逆时针旋转了30度
    cmd-markdown-logo

    简单解析

    打开matlab中imrotate函数源码,在命令行敲

    type imrotate
    

    找出关键信息可以看到,图像旋转利用矩阵旋转实现,旋转矩阵为tform

    tform = affine2d([cosd(ang) -sind(ang) 0; sind(ang) cosd(ang) 0 ; 0 0 1])
    B = imwarp(A,tform,method,'OutputView',Rout, 'SmoothEdges',true);

    1.2 尺度(缩放)

    基于上文,即坐标变换通常3x3大小的矩阵完成,对矩阵中的每一点生成[x,y,1]三维向量与变换矩阵相乘,便得到新矩阵,大多数图像几何变换都基于矩阵完成,用字母表示为从A到I,如下图。
    cmd-markdown-logo
    则对于缩放有
    cmd-markdown-logo

    1.3 平移

    cmd-markdown-logo

    1.4 错切

    错切常分为x轴错切或者y轴错切,平行于x轴的切变为x′=x+ky与y′=y,
    平行于y轴的切变为x′=x与y′=y+kx,矩阵实现参考下图

    cmd-markdown-logo

    1.5 反射

    二维反射变换如下,三维的基于上文变为增广矩阵即可。
    cmd-markdown-logo

    1.6 投影

    cmd-markdown-logo

    1.7 反变换

    cmd-markdown-logo
    cmd-markdown-logo

    2.像素、邻域、距离

    像素

    像素定义类似与眼球的杆状体,每张图片都是像素点的集合,常见的显示器描述就是以像素为单位,例如”640乘480”,它有横向640像素和纵向480像素(就像VGA显示器那样),因此其总数为640 × 480 = 307,200像素(30.72万像素)。
    数字图像均由像素点构成,依据坐标原点位置的不同常分为两类,每个像素点标示为I(r,c)或f(x,y)。
    **灰度图像的值域I是一个一元标量: I=greylevel
    彩色图像的值域I是一个多元向量: 如I=(r,g,b)**

    img

    每一个像素所能表达的不同颜色数取决于比特每像素(BPP,bit per pixel)。这个最大数可以通过取2的色彩深度次幂来得到。例如,常见的取值有
    8 bpp:256色,亦称为“8位”;
    16 bpp:216=65,536色,称为高彩色”;
    24 bpp:224=16,777,216色,称为真彩色,亦称为“24位色”;
    32 bpp:224 +28,电脑领域较常见的32位色并不是表示232种颜色,而是在24位色基础上增加了8位(28=256级)的灰阶,因此32位的色彩总数和24位是相同的,32位也称为全彩。
    (注:对于超过8位的深度,这些数位就是三个分量(红绿蓝)的各自的数位的总和。一个16位的深度通常分为5位红色和5比特蓝色,6比特绿色。24位的深度一般是每个分量8位。
    一张普通图片的像素点如下图所示:

    cmd-markdown-logo

    注:
    1.用matlab以矩阵形式读入即可查看图片属性,常见为8位灰度或者3通道RGB24位彩色图
    2.人眼只能分辨1000种颜色

    邻域

    2.2.1. 4邻域

    像素p(x,y)的4邻域是:(x+1,y);(x-1,y);(x,y+1);(x,y-1)
    用N4(p)表示像素p的4邻域

    2.2.2. D邻域

    像素p(x,y)的D邻域是:(x-1,y-1);(x-1,y+1);(x+1,y+1);(x+1,y-1)
    用ND(p)表示像素p的D邻域

    2.2.3. 8邻域

    4邻域的点+ D邻域的点
    用N8p表示像素p的8邻域
    N8p = N4p + NDp

    2.2.4. 连通性

    对于灰度值在V中的像素p和q,如果q在集合
    N4p中,则称这两个像素是4连通的,8联通与此类似

    距离

    像素间的距离分为三种
    - 欧几里得距离(Euclidean distance)
    - D4距离或城市距离(Manhattan distance)
    - D8距离或棋盘距离(Chessboard distance)

    2.3.1. 欧式距离

    在欧氏距离定义下,具有与(x,y)距离小于等于某 个值r的像素是:包含在以(x,y)为圆心,以r为半 径的圆.像素p(x,y)和q(s,t)间的欧氏距离定义如下

    2.3.2 城市距离

    像素p(x,y)和q(s,t)间的城市距离定义如下:

    具有D4 = 1的像素是(x,y)的4邻域,具有与(x,y)距离小于等于某个值r的那些像素形成直角菱形

    2.3.3 棋盘距离

    像素p(x,y)和q(s,t)间的 D8距离定义如下:

    具有与(x,y)距离小于等于某个值r的那些像素形成正方形,具有D8 = 1的像素是(x,y)的8邻域

    2.3.4 路径

    一条从具有坐标(x,y)的像素p,到具有坐标(s,t)的像素q的路径,是具
    有坐标(x0,y0),(x1,y1),…,(xn,yn)的不同像素的序列。
    其中,(x0,y0) = (x,y),(xn,yn) = (s,t),(xi,yi) 和(xi-1,yi-1)是邻接的,1
    ≤ i ≤ n,n是路径的长度。
    如果(x0,y0) = (xn,yn) ,则该路径是闭合路径。
    可以用定义连通的类似方法定义4-路径和8-路径。

    3.图像显示

    抖动技术

    误差抖动常用在图像/视频压缩中,用来降低色彩的深度。如下图所示,256级(8bit)灰度过度 【图二】将图一转换成16级(8bit)灰度(高4位不变,低4位置0) 【图三】将图一用误差扩散法转换成16级灰度。
    可看出图3效果好于图2

    4.采样与量化

    大多数传感器(如CMOS)的输出是连续信号波形,为了产生一幅数字图像,需要把连续的感知数据转化为离散的数字形式,这包括两种处理:取样和量化
    - 取样(Sampling):图像函数定义域(空间坐 标)的数字化
    - 量化(Quantization):图像函数值域(灰度值) 的数字化

    4.1 采样

    采样通常为求每个像素对应区域内的积分均值,实际中,模拟信号都是电流\电压值,经过A/D转换为数字信号,具体可参考VB工业编程。

    采样点越多,数据量越多,图像越清晰

    4.2量化

    量化常分为2^m,m=8最常见,即把模拟信号最大最小值中分段量化

    量化阶数越高,视觉效果越好

    5.图像质量

    • 亮度
    • 对比度(最大亮度/最小亮度)
    • 尺寸大小
    • 细微层次(模糊)
    • 颜色饱和度

    6.图像存储与格式

    (1) BMP(BitMaP)格式
    (2) GIF(Graphics Interchange Format)格式
    (3) TIFF(Tagged Image Format File)格式
    (4) JPEG(Joint Photographic Expert Group)格式

    关于图像存储与格式,需要大篇篇幅去论述,通常分为head和data两部分,在开发中不会过多涉及格式问题,因此不再详细叙述,知识总结1就先写到这里,莫名累。。。。。

    参考链接

    wiki-变换矩阵
    wiki-像素
    pku-cys
    Tsinghua-Tipa

    作者:@Awiny

    展开全文
  • 该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。...
  • 图像处理的概念是对图像信息进行加工处理,以满足人的视觉心理和实际应用的需求。 模拟图像:连续图像,采用数字化(离散化)表示和数字技术处理之前的图像。 数字图像:由连续的模拟图像采样和量化而得的图像,...
  • 遥感平台、摄影成像原理、扫描成像原理、遥感图像的特征、遥感数字图像的基本特点与类型、图像灰度直方图、图像处理算法的形式 、图像的数据结构与特征 、遥感数字图像处理的数学基础、2.6 遥感知识回顾 1.遥感的...
  • 基础知识1: 定义二维函数f(x,y),其中x,y是空间坐标,f(x,y)是点(x,y)的幅值。 灰度图像是一个二维灰度(亮度)函数f(x,y);彩色图片是由三个二维灰度函数f(x,y)组成。 像素组成的二维排列可以用矩阵来表示: ...
  • 图像处理基本知识

    2016-12-20 18:48:19
    1.图像处理方法分类 输入 输出 等级 例子 图像 图像 初级 降噪,增强对比度 图像 图像特征 中级 轮廓提取 图像 图像表征的信息 高级 模式识别,机器视觉 2. 图像增强(image enhancement) 没有统一的...
  • 图像处理基础知识

    2015-05-27 13:13:28
    用选定的图像、图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。用于覆盖的特定图像或物体称为掩模或模板。光学图像处理中,掩模可以是胶片、滤光片等。数字图像处理中,掩模为二维...
  • 在MATLAB中,基本数据结构为数列,大部分图像也是以数列的方式存储的,例如,包含1024列768行的彩色图像,在MATLAB中被存储为1024X768的矩阵;其中,矩阵的值为色彩值。这样就把图像变成了数列了,MATLAB就可以使用...
  • 本篇主要补充一些离散信号分析与线性系统方面的知识,在此基础讲述简单的图像运算,为后续数字图像处理作准备。 目录 一、图像信号的数学表示 二、灰度直方图  三、图像的点运算 四、图像的代数运算 五...
  • OpenCV图像处理知识

    2019-05-04 00:11:24
    OpenCV图像处理知识 OpenCV图像处理参考博客
  • 今天是开始图像处理学习的博客论文的第一篇,因此在这里介绍一下图像处理基础知识: 首先要了解图像,什么是图像以及图像分为哪几类,首先要说的是图像是表达信息的一个重要的载体之一,与文字不同的是通过图像...
  • 8位位图,像素读取需要unsinged charlei'xi
  • 数字图像处理基本知识 什么是图像 “图”是物体投射或反射光的分布,“像” 是人的视觉系统对图的接受在大脑中形成的印象或反映。是客观和主观的结合。 2数字图像是指由被称作象素的小块区域组成的二维矩阵。将 ...
  • 这些知识感觉学完还是记不住,这里自己总结了哈,希望能够加强记忆 图象显示 标准图像显示技术特殊图象显示技术 图像运算 代数运算空间变换图像配准 图像数据变换 二维傅立叶 离散余弦 其他变换  1)...
  • 图像处理 对图像进行一系列操作,以到达预期目的的技术。 图像处理三个层次 狭义图像处理、图像分析和图像理解。 图像处理五个模块 采集、显示、存储、通信、处理和分析。 图像数字化 将一幅画面转化成计算机能处理...
1 2 3 4 5 ... 20
收藏数 114,801
精华内容 45,920