《OpenCV3编程入门》学习笔记7 图像变换(五 )直方图均衡化
生活随笔
收集整理的這篇文章主要介紹了
《OpenCV3编程入门》学习笔记7 图像变换(五 )直方图均衡化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
7.5 直方圖均衡化
7.5.1 概念
1.圖像增強處理,圖像的像素灰度變化是隨機的,直方圖圖像高低不齊,用一定算法使直方圖大致平和,通過拉伸像素強度分布范圍來增強圖像對比度
2.均衡化處理后的圖像只能是近似均勻分布,圖像動態范圍擴大了,本質是擴大了量化間隔,減小了量化級別,因此,原來灰度不同的像素處理后可能變得相同,形成一片相同灰度區域,各區域之間有明顯的邊界,從而出現了偽輪廓
3.源圖像對比度高,均衡化后對比度降低;原圖像對比度低,均衡化后對比度提高;均衡化后再均衡化,圖像不變
7.5.2 直方圖均衡化:equalizeHist()函數
1.函數原型:
void equalizeHist(InputArray src, OutputArray dst)
2.參數說明:
(1)輸入圖像,8位單通道圖像
(2)輸出圖像
3.原理:
??把直方圖的每個灰度級進行歸一化處理,求每種灰度的累積分布,得到一個映射的灰度映射表,根據相應的灰度值來修正原圖中的每個像素
4.步驟:
(1)計算輸入圖像的直方圖H
(2)進行直方圖歸一化,直方圖的組距為255
(3)計算直方圖積分:
?????????????????
(4)以H’作為查詢表進行圖像變換
????????????????
7.5.3 直方圖均衡化示例
#include<opencv2/opencv.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main()
{//載入原圖Mat srcImage = imread("4.jpg");if (!srcImage.data){printf("載入原圖失敗~!\n");return false;}Mat dstImage;dstImage.create(srcImage.size(), srcImage.type());//轉為灰度圖并顯示cvtColor(srcImage, srcImage, COLOR_BGR2GRAY);imshow("【原始圖】", srcImage);//直方圖均衡化equalizeHist(srcImage, dstImage);//顯示效果圖imshow("【效果圖】直方圖均衡化", dstImage);waitKey(0);return 0;
}
運行效果:
總結
以上是生活随笔為你收集整理的《OpenCV3编程入门》学习笔记7 图像变换(五 )直方图均衡化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《OpenCV3编程入门》学习笔记7 图
- 下一篇: 《OpenCV3编程入门》学习笔记8 图