matlab 增加图像对比度_计算机视觉学习笔记6 图像直方图与直方图均衡化
- 圖像的直方圖
圖像直方圖表示圖像中每一種像素的個數(shù),反映了圖像中每種像素值出現(xiàn)的頻率,是圖像的基本統(tǒng)計特征之一,具有平移,旋轉(zhuǎn),縮放不變性,廣泛應(yīng)用于圖像處理的各個領(lǐng)域。比如灰度圖像的閾值分割,基于顏色的圖像檢索,圖像的分類等。直方圖橫坐標(biāo)表示像素值,縱坐標(biāo)表示該像素值的個數(shù),常見的有灰度直方圖和顏色直方圖。
- 直方圖均衡化
直方圖均衡化是一種利用灰度變換自動調(diào)節(jié)圖像對比度質(zhì)量的方法,可以用于圖像增強(qiáng)等方面。比如在部分人臉識別的神經(jīng)網(wǎng)絡(luò)中,會先對人臉圖像進(jìn)行直方圖均衡化,從而增強(qiáng)對比度,提高檢測準(zhǔn)確率。
MATLAB直方圖均衡化
在MATLAB中,通過imhist()計算直方圖,通過histeq()進(jìn)行均衡化。
hist = imhist( img ); hist_eq = histeq( gray ,n ); % n表示均衡化后灰度級,默認(rèn)64;案例演示如下:
img = imread('onion.png');subplot(2,2,1); imshow(img); % 顯示原始圖像subplot(2,2,2); imhist(img(:,:,1)); % 顯示r通道直方圖subplot(2,2,3); imhist(img(:,:,2)); % 顯示g通道直方圖subplot(2,2,4); imhist(img(:,:,3)); % 顯示b通道直方圖gray = rgb2gray(img);gray2 = histeq(gray);figure;subplot(2,2,1); imshow(gray); % 顯示原始灰度圖subplot(2,2,2); imshow(gray2); % 顯示均衡化后的灰度圖subplot(2,2,3); imhist(gray); % 顯示原始灰度圖直方圖subplot(2,2,4); imhist(gray2); % 顯示均衡化后直方圖原始圖像和三通道直方圖
灰度圖和均衡化后灰度圖
均衡化后像素點分布變得平均,不會聚集在某一區(qū)域,因此對比度更強(qiáng)。
c++直方圖均衡化
c++中通過calHist來獲取直方圖分量,通過equalizeHist進(jìn)行直方圖均衡化
opencv 默認(rèn)的均衡化灰度級數(shù)為8
// 輸入的圖像或數(shù)組 輸入數(shù)組個數(shù) 需要統(tǒng)計的通道dim 可選的操作掩碼 每個維度的直方圖尺寸的數(shù)組 每個維度中bin的取值范圍calcHist(&bgr_plane[0], 1, 0, Mat(), b_hist, 1, bins, ranges); equalizeHist(gray, gray2); // 直方圖均衡化c++直方圖均衡化很方便,但是統(tǒng)計直方圖有點麻煩,不知道是我方法沒用對還是咋的。
#include #include using namespace cv;using namespace std;void showHistogram(Mat &img); // 方法聲明int main(int argc, char** argv) { Mat img; img = imread("data/imdata/onion.png"); namedWindow("image總結(jié)
以上是生活随笔為你收集整理的matlab 增加图像对比度_计算机视觉学习笔记6 图像直方图与直方图均衡化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最新公共充电桩总量TOP10省份出炉 广
- 下一篇: 显著性目标检测matlab代码_显著性目