灰度变换
一、灰度变换概念
在图像预处理中,图像的灰度变换是图像增强的重要手段,灰度变换可以使图像对比度扩展,图像清晰,特征明显,灰度变换主要利用点运算来修正像素灰度,由输入像素点的灰度值确定相应输出点的灰度值,是一种基于图像变换的操作。
二、灰度变换的作用
1.改善图像是质量,显示更多的细节,提高图像的对比度
2.有选择的突出图像感兴趣的特征或者抑制图像中不需要的特征
3.可以有效的改变图像的直方图的分布,使像素的分布更加均匀
三、灰度变换的方法
1.线性灰度变换
2.非线性灰度变换(对数变换,幂律变换(伽马变换))
灰度化
一、灰度的概念
在数字图像中,像素是基本的表示单位,各个像素的亮安程度用灰度值来标识,只含亮度信息,不含色彩信息的图像称为灰度图像,对于单色图像,它的每个像素的灰度值用【0,255】区间的整数表示,即图像分为256个灰度等级,对于彩色图像,他的每个像素由R,G,B三个单色调配而成,如果每个像素的R,G,B完全相同,也就是R=G=B=D,该图像就是灰度图像,其中D被称为各个像素的灰度值。
二、对彩色图进行灰度化
1.加权平均值法
D=0.299R+0.587G+0.114*B
代码如下:
#include<iostream>
#include<opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat img, img2;
img = imread("猫1.jpg");
imshow("原图", img);
img2.create(img.size(), 0);
for (int i = 0; i < img.rows; i++)
{
for (int j = 0; j < img.cols; j++)
{
img2.at<uchar>(i, j) = saturate_cast<uchar>(0.114*img.at<Vec3b>(i, j)[0] + 0.587*img.at<Vec3b>(i, j)[1] + 0.299*img.at<Vec3b>(i, j)[2]);
}
}
imshow("经验公式", img2);
waitKey(0);
}
效果如下:

2.取最大值
代码如下:
int main()
{
Mat img, img2;
img = imread("猫1.jpg");
imshow("原图", img);
img2.create(img.size(), 0)

本文介绍灰度变换的基础知识,包括灰度变换的概念、作用及方法,并详细解释了如何对彩色图像进行灰度化处理,同时提供了灰度线性和非线性变换的具体实现案例。
 灰度变换&spm=1001.2101.3001.5002&articleId=123810853&d=1&t=3&u=87c62ec657b644c5a8db750db61eca12)
8546

被折叠的 条评论
为什么被折叠?



