zoukankan      html  css  js  c++  java
  • OpenCV 学习笔记(9)RGB转换成灰度图像的一个常用公式Gray = R*0.299 + G*0.587 + B*0.114

    https://blog.csdn.net/fly_wt/article/details/86432886

    RGB转换成灰度图像的一个常用公式是:
    Gray = R*0.299 + G*0.587 + B*0.114
    //灰度转换函数*******
    //第一个参数image输入的彩色RGB图像的引用;
    //第二个参数imageGray是转换后输出的灰度图像的引用;
    //*******************************************************

    #include <opencv2opencv.hpp>
    using namespace cv;
    void ConvertRGB2GRAY(const Mat &image, Mat &imageGray);
    
    int main()
    {
    	Mat src = imread("catGuitar.jpg");
    	Mat grayImage;
    	ConvertRGB2GRAY(src, grayImage);
    	imshow("gray image", grayImage);
    	imwrite("grayimage.jpg", grayImage);
    	waitKey(0);
    	return 0;
    }
    
    void ConvertRGB2GRAY(const Mat &image, Mat &imageGray)
    {
    	if (!image.data || image.channels() != 3)
    	{
    		return;
    	}
    	//创建一张单通道的灰度图像
    	imageGray = Mat::zeros(image.size(), CV_8UC1);
    	//取出存储图像像素的数组的指针
    	uchar *pointImage = image.data;
    	uchar *pointImageGray = imageGray.data;
    	//取出图像每行所占的字节数
    	size_t stepImage = image.step;
    	size_t stepImageGray = imageGray.step;
    	for (int i = 0; i < imageGray.rows; i++)
    	{
    		for (int j = 0; j < imageGray.cols; j++)
    		{
    			pointImageGray[i*stepImageGray + j] =
    				(uchar)(0.114*pointImage[i*stepImage + 3 * j] +
    					0.587*pointImage[i*stepImage + 3 * j + 1] +
    					0.299*pointImage[i*stepImage + 3 * j + 2]);
    		}
    	}
    }
    

      

  • 相关阅读:
    scgi_params
    ngin 模块及模板
    nginx常用模块
    HTML
    nginx部署网页小游戏
    nginx的server标签还有日志管理
    关于使用yum安装的nginx的主从配置文件的碎碎念
    判断所ping主机的操作系统
    CentOS 7修改主机名
    CentOS7 设置系统时间
  • 原文地址:https://www.cnblogs.com/kekeoutlook/p/11114966.html
Copyright © 2011-2022 走看看