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

  • 相关阅读:
    Webdriver启动Firefox浏览器后,页面显示空白
    Windows+Python+Selenium基础篇之1-环境搭建
    office2010无法卸载问题
    .NET使用FastDBF读写DBF
    并发编程相关概念
    C#的多线程简洁笔记
    asp.net core 3.1 入口:Program.cs中的Main函数
    【WPF学习】第四十四章 图画
    .NET知识梳理——1.泛型Generic
    C#个推SDK推送安卓+iOS
  • 原文地址:https://www.cnblogs.com/zdfffg/p/11558395.html
Copyright © 2011-2022 走看看