02灰度化

灰度化

处理三个通道的数据比较复杂,我们先将图像进行灰度化处理,灰度化的过程就是将每个像素点的RGB值统一成同一个值。灰度化后的图像将由三通道变为单通道,单通道的数据处理起来就会简单许多。
通常这个值是根据RGB三通道的数值进行加权计算得到。人眼对RGB颜色的敏感度不同,对绿色最敏感,权值较高,对蓝色最不敏感,权值较低。坐标为(x,y)的像素点进行灰度化操作的具体计算公式如下:

Y=0.2126 R+0.7152 G+0.0722 B Y = 0.2126\ R + 0.7152\ G + 0.0722\ B Y=0.2126 R+0.7152 G+0.0722 B

代码实现

#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include<iostream>
using namespace cv;
//灰度化
Mat BGR2GRAY(Mat img)
{
	//获取图像宽高
	int height = img.rows;
	int width = img.cols;
	//输出图像画布
	Mat out = Mat::zeros(height,width, CV_8UC1);
	//遍历图像
	for (int y = 0; y < height; y++)
	{
		for (int x = 0; x < width; x++)
		{
			// BGR -> Gray uchar 是单通道;vec3b是三通道
			out.at<uchar>(y, x) = 0.2126 * (float)img.at<Vec3b>(y, x)[2] + 0.7152 * (float)img.at<Vec3b>(y, x)[1] + 0.0722 * (float)img.at<Vec3b>(y, x)[0];
		}
	}
	return out;
}
int main()
{
	Mat img = imread("lena.jpg");
	imshow("origin", img);
	Mat out = BGR2GRAY(img);
	imshow("sample", out);
	waitKey(0);
	return 0;

}

结果显示

原图
在这里插入图片描述结果
在这里插入图片描述

### 灰度矩的概念及其在计算机视觉中的应用 #### 定义与计算 灰度矩是一种描述图像特征的重要工具,在计算机视觉中广泛应用于形状识别和目标检测等领域。对于一幅二维离散图像 \( f(x, y) \),其\( p+q \)阶空间矩定义如下: \[ m_{pq}=\sum_x\sum_y x^{p}y^{q}f(x,y), (p,q=0,1,\cdots ) \] 其中,最常用的是零阶矩、一阶矩和二阶矩。 - **零阶矩**表示整个区域内的像素总强度之和,可用于估计物体面积大小; - **一阶矩**反映了质心位置的信息; - **二阶矩**则提供了关于分布宽度的数据[^1]。 ```python import numpy as np def calculate_moments(image): M = {} # Zeroth order moment M['m00'] = np.sum(image) # First order moments M['m10'] = np.sum(np.multiply(image, range(image.shape[1]))) M['m01'] = np.sum(np.multiply(image.T, range(image.shape[0]))).T # Second order moments M['m20'] = np.sum(np.multiply(image, [i*i for i in range(image.shape[1])])) M['m11'] = np.sum([image[i][j]*i*j for i in range(image.shape[0]) for j in range(image.shape[1])]) M['m02'] = np.sum(np.multiply(image.T, [i*i for i in range(image.shape[0])])).T return M ``` #### 归一化中心距 为了消除平移的影响并更好地表征图形特性,通常会进一步计算归一化的中心距。这涉及到先求得原点坐标系下的各阶矩后再做相应变换得到新坐标系下对应的值。具体来说就是利用已知的一阶矩来确定重心的位置,并以此作为新的参考点重新构建距离关系矩阵进而完成后续运算操作[^2]。 #### 应用场景 灰度矩不仅限于理论研究层面的应用价值,在实际工程项目里同样发挥着不可替代的作用。比如车牌号码自动识别系统就采用了基于Hu不变矩的方法来进行字符分割提取工作;医学影像分析方面也经常借助该算法实现细胞核轮廓描绘等功能需求[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值