zoukankan      html  css  js  c++  java
  • OpenCV && C++ 06

    直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。

    这种方法对于背景和前景都太亮或者太暗的图像非常有用,这种方法的一个主要优势是它是一个是可逆操作,如果已知均衡化函数,那么就可以恢复原始的直方图,并且计算量也不大。这种方法的一个缺点是它对处理的数据不加选择,它可能会增加背景噪声的对比度并且降低有用信号的对比度。

    Code

    /*
    作者:郑大峰
    时间:2019年09月20日
    环境:OpenCV 4.1.1 + VS2017
    内容:Histogram Equalization of a Grayscale image with OpenCV
    */
    
    #include "pch.h"
    #include <iostream>
    #include <opencv2/opencv.hpp>
    
    using namespace std;
    using namespace cv;
    
    int main()
    {
    	Mat image = imread("Unequalized_Hawkes_Bay_NZ.jpg");
    
    	if (image.empty())
    	{
    		cout << "Could not open or find the image" << endl;
    		cin.get();
    		return -1;
    	}
    
    	//change the color image to grayscale image
    	cvtColor(image, image, COLOR_BGR2GRAY);
    
    	//equalize the histogram
    	Mat hist_equalized_image;
    	equalizeHist(image, hist_equalized_image);
    
    	//Define names of windows
    	String windowNameOfOriginalImage = "Original Image";
    	String windowNameOfHistogramEqualized = "Histogram Equalized Image";
    
    	// Create windows with the above names
    	namedWindow(windowNameOfOriginalImage, WINDOW_NORMAL);
    	namedWindow(windowNameOfHistogramEqualized, WINDOW_NORMAL);
    
    	// Show images inside created windows.
    	imshow(windowNameOfOriginalImage, image);
    	imshow(windowNameOfHistogramEqualized, hist_equalized_image);
    
    	waitKey(0); // Wait for any key stroke
    
    	destroyAllWindows(); //destroy all open windows
    
    	return 0;
    }
    

    Result

  • 相关阅读:
    2021年-组装ITX台式机电脑
    jetbrain idea误删文件的两种恢复的方法
    Jmeter Macbook上利用命令行ssh tunnel 开启mysql链接
    pipeline buildResult 和 stageResult的区别
    Jenkins Pipeline ample 样板
    docker删除镜像
    C++内存分区
    auto | auto& | auto&&
    一种简易的音频信号延迟测量方案
    自制一个简易的任意音频信号发生器
  • 原文地址:https://www.cnblogs.com/zdfffg/p/11558395.html
Copyright © 2011-2022 走看看