• 图像灰度化


    1彩色图,灰度图,单色图

    灰度图是指只含亮度信息,不含色彩信息的图像。灰度化处理是把含有亮度和色彩的彩色图像变化成灰度图像的过程。 图像灰度化处理一般采用以下三种算法: 平均值法: f(i,j)=(R(i,j)+G(i,j)+B(i,j))/3 最大值法: f(i,j)=max(R(i,j),G(i,j),B(i,j)) 加权平均值法:f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j)

    2 图像灰度化opencv

     1 #include <opencv2/opencv.hpp>
     2 #include <opencv2/highgui/highgui.hpp>
     3 #include <opencv2/imgproc/imgproc.hpp>    
     4 
     5 using namespace cv;
     6 
     7 int main()
     8 {
     9     //读取图片(使用图片的绝对路径)
    10     Mat src = imread("D://a3.png");//mat是matrix的缩写,表示src的数据类型是矩阵类型的 
    11     //显示图片
    12     imshow("原图", src);
    13 
    14     //显示灰度图
    15     Mat Gray;
    16     cvtColor(src, Gray, COLOR_BGR2GRAY);//注释一
    17     imshow("灰度图", Gray);
    18 
    19     
    20 
    21     //进行均值滤波
    22     Mat dstImage1;
    23     blur(src, dstImage1, Size(7, 7));//注释二
    24 
    25     //模糊操作显示效果图
    26     imshow("均值滤波【效果图】", dstImage1);
    27 
    28     //不加此语句图片会一闪而过
    29     waitKey(0);
    30 
    31     return 0;
    32 }

    注释一:

    . InputArray src: 输入图像即要进行颜色空间变换的原图像,可以是Mat类
    . OutputArray dst: 输出图像即进行颜色空间变换后存储图像,也可以Mat类
    . int code: 转换的代码或标识,即在此确定将什么制式的图片转换成什么制式的图片
    . int dstCn = 0: 目标图像通道数,如果取值为0,则由src和code决定
    cvtColor(srcImage, grayImage, CV_BGR2GRAY); //将图像转换为灰度图

    cvtColor(srcImage, HSVImage, COLOR_BGR2HSV); //将图像转换为HSV图

    注释二:

    blur的作用是对输入的图像src进行均值滤波后用dst输出。

    函数原型:
    C++: void blur(InputArray src, OutputArray dst, Size ksize, Point anchor=Point(-1,-1), int borderType=BORDER_DEFAULT )

    参数详解如下:
    第一个参数,InputArray类型的src,输入图像,即源图像,填Mat类的对象即可。该函数对通道是独立处理的,且可以处理任意通道数的图片,但需要注意,待处理的图片深度应该为CV_8U, CV_16U, CV_16S, CV_32F 以及 CV_64F之一。
    第二个参数,OutputArray类型的dst,即目标图像,需要和源图片有一样的尺寸和类型。比如可以用Mat::Clone,以源图片为模板,来初始化得到如假包换的目标图。
    第三个参数,Size类型(对Size类型稍后有讲解)的ksize,内核的大小。一般这样写Size( w,h )来表示内核的大小( 其中,w 为像素宽度, h为像素高度)。Size(3,3)就表示3x3的核大小,Size(5,5)就表示5x5的核大小
    第四个参数,Point类型的anchor,表示锚点(即被平滑的那个点),注意他有默认值Point(-1,-1)。如果这个点坐标是负值的话,就表示取核的中心为锚点,所以默认值Point(-1,-1)表示这个锚点在核的中心。
    第五个参数,int类型的borderType,用于推断图像外部像素的某种边界模式。有默认值BORDER_DEFAULT,我们一般不去管它。

  • 相关阅读:
    1、编写一个简单的C++程序
    96. Unique Binary Search Trees
    python 操作redis
    json.loads的一个很有意思的现象
    No changes detected
    leetcode 127 wordladder
    django uwsgi websocket踩坑
    you need to build uWSGI with SSL support to use the websocket handshake api function !!!
    pyinstaller 出现str error
    数据库的读现象
  • 原文地址:https://www.cnblogs.com/henuliulei/p/10560357.html
Copyright © 2020-2023  润新知