【图像处理】灰度化

图像灰度化就是图像中的每一像素点的分量都满足R=G=B=V的关系,此时的V就是灰度值

为什么要灰度化?

灰度是指含有亮度信息,不含彩色信息的图像。

使用灰度图的好处:

1、RGB的值都一样

2、图像数据 = 调色板索引值 = RGB的值 = 亮度值

3、调色板为256色,所以图像数据中的一个字节代表一个像素

一般做图像处理之前都需要先把图像进行灰度化。

在这之前要访问图像中的每一个像素:

Mat inputImage = imread("C:\\Users\\asus\\Desktop\\MouseWithoutBorders\\11.jpg");
Mat outoutImage = inputImage.clone();
int rowN = outoutImage.rows; //行数和列数
int cloN = outoutImage.cols;
for (int i = 0; i < rowN; i++)
{
	for (int j = 0; j < cloN; j++)
	{
		outoutImage.at<cv::Vec3b>(i, j)[0] ;  //B
		outoutImage.at<cv::Vec3b>(i, j)[1] ;  //G
		outoutImage.at<cv::Vec3b>(i, j)[2] ;  //R
	}
}

原图,以便对比:

灰度化的处理方法大致有以下几种方法:

1、平均值法:

double RGB = outoutImage.at<cv::Vec3b>(i, j)[0] + 
            outoutImage.at<cv::Vec3b>(i, j)[1] + 
	    outoutImage.at<cv::Vec3b>(i, j)[2];
outoutImage.at<cv::Vec3b>(i, j)[0] = RGB / 3;  //B
outoutImage.at<cv::Vec3b>(i, j)[1] = RGB / 3;  //G
outoutImage.at<cv::Vec3b>(i, j)[2] = RGB / 3;  //R

2、最大值法

double a = outoutImage.at<cv::Vec3b>(i, j)[0];
double b = outoutImage.at<cv::Vec3b>(i, j)[1];
double c = outoutImage.at<cv::Vec3b>(i, j)[2];
double max;
max = a > b ? a : b;
max = max > c ? max : c;
outoutImage.at<cv::Vec3b>(i, j)[0] = max;
outoutImage.at<cv::Vec3b>(i, j)[1] = max;
outoutImage.at<cv::Vec3b>(i, j)[2] = max;

3、加权平均法:

double a = outoutImage.at<cv::Vec3b>(i, j)[0]; //B
double b = outoutImage.at<cv::Vec3b>(i, j)[1]; //G
double c = outoutImage.at<cv::Vec3b>(i, j)[2]; //R
outoutImage.at<cv::Vec3b>(i, j)[0] = a * 0.3 + b * 0.59 + c * 0.11;
outoutImage.at<cv::Vec3b>(i, j)[1] = a * 0.3 + b * 0.59 + c * 0.11;
outoutImage.at<cv::Vec3b>(i, j)[2] = a * 0.3 + b * 0.59 + c * 0.11;

个人感觉均值灰度化的效果比较好~

  • 4
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
FPGA图像处理中的灰度化是指将彩色图像转换为灰度图像的处理过程。在FPGA的实现中,可以使用Verilog语言来实现彩色图像的灰度化算法,并通过Modelsim进行仿真验证。灰度化的算法通常是基于RGB通道的像素值,按照一定的公式进行转换。其中常用的公式为:GRAY = 0.299R + 0.587G + 0.114B。由于FPGA不方便进行小数运算,可以将公式中的系数放大256倍进行运算,然后右移8位,即GRAY = (77R + 150G + 29B) >> 8。这样可以实现将彩色图像的每个像素点转换为对应的灰度值。为了解决时序问题,可以对该公式进行流水线处理,分为三个阶段:乘法、加法和移位。通过这样的流水线处理,可以实现灰度化的算法在FPGA上的高效实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [基于 FPGA 的彩色图像灰度化的设计实现](https://blog.csdn.net/wd12306/article/details/130711477)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [FPGA图像处理-灰度化](https://blog.csdn.net/lzl1342848782/article/details/125048818)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [基于FPGA图像处理灰度图像变换](https://download.csdn.net/download/qq_40261818/10611461)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值