直方图均衡化、直方图对比

本文探讨了直方图均衡化在增强图像对比度中的应用,指出在高对比度图像中均衡化可能降低对比度。同时,介绍了直方图对比的方法,包括相关系数、卡方系数、相交系数和巴氏系数,并解析了不同方法衡量相似度的原理。最后,展示了对比结果。
摘要由CSDN通过智能技术生成

直方图的处理和对比

直方图均衡化

  • 用一定的算法使直方图大致平和的方法。通过拉伸像素强度分布范围来增强图像对比度的一种发放(即输出的直方图是均匀的)
  • 在原始图像对比度很高的情况下,如果均衡化,对比度会降低
  • 均衡化的图像如果再对其均衡化,图像不会有任何改变。

源码实现

//
===============================================================
FileName:
          equalizeHistogram.cpp
Date:
          2019/11/27
Author:
          khoing(https://blog.csdn.net/qq_45391763)
===============================================================


# include<iostream>
# include<opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;

Mat HistEq(Mat& srcImage);
Mat rgbTOgray(Mat srcImg);
int main()
{
   
	Mat srcImg = imread("C:/Users/sualab/Desktop/cow.jpg");
	Mat resultImg;
	if (!srcImg.data)
	{
   
		cout << "图片不存在" << endl;
	}

//------------------------------------------------------------------------

	if (srcImg.channels() == 3)
	{
   
		Mat gray = rgbTOgray(srcImg);
		resultImg = HistEq(gray);
		imshow("gray", gray);
		imshow("result", resultImg);
	}

//------------------------------------------------------------------------

	if (srcImg.channels() == 1)
	{
   
		resultImg = HistEq(srcImg);
		imshow("gray", srcImg);
		imshow("result", resultImg);
	}
	waitKey(0);
	return 0;
}

//------------------------------------------------------------------------

//彩色转灰度(其实就是取各个通道的像素点不同比例的和)
Mat rgbTOgray(Mat srcImg)
{
   
	int rows = srcImg.rows;
	int cols = srcImg.cols;
	Mat gray(rows, cols, CV_8UC1);
	int i, j;
	for (i = 0; i < rows; i++)
	{
   
		for (j = 0; j < cols; j++)
		{
   
			gray.at<uchar>(i, j) = (int)(0.114 * srcImg.at<Vec3b>(i, j)[0] + 0.587 * srcImg.at<Vec3b>(i, j)[1] + 0.299 * srcImg.at<Vec3b>(i, j)[2]);
		}
	}
	return gray;
}

//------------------------------------------------------------------------

//直方图均衡化
Mat HistEq(Mat& srcImage)
{
   
	int rows = srcImage
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值