vs2015+opencv3.3.1 实现 直方图均衡化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vs2015+opencv3.3.1 实现 直方图均衡化相关的知识,希望对你有一定的参考价值。

#include <opencv2\highgui\highgui.hpp>
#include <iostream>
#include<vector>

using namespace  cv;
using namespace  std;
double gray[256];

int main(){

	Mat img = imread("123.jpg", 0);

//	namedWindow("MyWindow");
//	imshow("MyWindow", img);


	std::vector<uchar> array(img.rows*img.cols);
	if (img.isContinuous())  {array.assign(img.datastart, img.dataend);}
	cout << array.size();
	
	for (int i = 0; i < img.rows*img.cols; i++)++gray[(int)array[i]];
	for (int i = 0; i < 256; i++) {
		gray[i] /= (img.rows*img.cols);
		gray[i] = int(255 * gray[i]+0.5);
		if (i > 0)gray[i] = (gray[i] + gray[i - 1]);
	}

	for (int i = 0; i < img.rows*img.cols; i++)array[i] = gray[array[i]];

	Mat now((int)img.rows,(int)img.cols, 0);
	for (int i = 0; i < img.rows; i++) 
		for (int j = 0; j <  img.cols; j++) 
			now.at<uchar>(i, j) = array[i*img.cols+j];

//	namedWindow("MyWindow1");
//	imshow("MyWindow1", now);
//	waitKey(0);
	imwrite("1123.jpg", now);
	system("pause"); 

	return
		0;

}

  

以上是关于vs2015+opencv3.3.1 实现 直方图均衡化的主要内容,如果未能解决你的问题,请参考以下文章

vs2015+opencv3.3.1 实现 彩色高斯滤波器 包括边缘处理

OpenCV 3:openCV 3.3.1 中的透视变换有啥问题?

HYF-Linux8 环境配置躺坑记录 cuda8 cudnn6 virtualenv tensorflow opencv3.3.1

计数排序vs基数排序vs桶排序

OpenCV 错误:使用 calcHist 断言失败

在VS2015中用C++创建DLL并用C#调用且同时实现对DLL的调试