直方图均衡化opencv(彩色、灰度图)
生活随笔
收集整理的這篇文章主要介紹了
直方图均衡化opencv(彩色、灰度图)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
直方圖均衡化
void equalizeHist(InputArray src, OutputArray dst);
.?src:輸入圖像,需為8-bit單通道
. dst: 目標(biāo)圖像,與原圖像有相同的尺寸和類型。
示例代碼
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;void print()
{cout << "【1】:進(jìn)行灰度圖像均衡化" << endl;cout << "【2】:進(jìn)行彩色圖像均衡化" << endl;cout << "——————————————" << endl;
}int main()
{print();double time0 = static_cast<double>(getTickCount());//記錄起始時(shí)間//改變console(控制臺(tái))字體顏色 system("color 0B");//載入原圖Mat src = imread("12.bmp");Mat dst;dst = src.clone();//判斷圖片是否讀入if (!src.data){printf("Oh,no,讀取圖片image0錯(cuò)誤~! \n");return false;}//循環(huán)輪詢按鍵while (1){//先顯示效果圖imshow("原圖", src);//獲取鍵盤按鍵int c = waitKey(0);//判斷ESC是否按下,若按下便退出if ((c & 255) == 27){std::cout << "程序退出!\n";break;}//根據(jù)按鍵的不同,進(jìn)行各種操作switch ((char)c){case '1':std::cout << "您正在進(jìn)行灰度圖像均衡化" << endl;cvtColor(src, dst, COLOR_BGR2GRAY);equalizeHist(dst, dst);imshow("結(jié)果圖", dst);break;case '2':std::cout << "您正在進(jìn)行彩色圖像均衡化" << endl;vector<Mat> mv;split(src, mv); equalizeHist(mv[0], mv[0]);equalizeHist(mv[1], mv[1]);equalizeHist(mv[2], mv[2]);merge(mv, dst);imshow("結(jié)果圖", dst);break;}}time0 = ((double)getTickCount() - time0) / getTickFrequency();std::cout << "此方法運(yùn)行時(shí)間:" << time0 << "秒" << endl;//輸出運(yùn)行時(shí)間return 0;
}
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的直方图均衡化opencv(彩色、灰度图)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opencv仿射变换
- 下一篇: 判断图像质量的好坏(opencv)