matlab 增加图像对比度_计算机视觉学习笔记6 图像直方图与直方图均衡化
生活随笔
收集整理的這篇文章主要介紹了
matlab 增加图像对比度_计算机视觉学习笔记6 图像直方图与直方图均衡化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- 圖像的直方圖
圖像直方圖表示圖像中每一種像素的個數,反映了圖像中每種像素值出現的頻率,是圖像的基本統計特征之一,具有平移,旋轉,縮放不變性,廣泛應用于圖像處理的各個領域。比如灰度圖像的閾值分割,基于顏色的圖像檢索,圖像的分類等。直方圖橫坐標表示像素值,縱坐標表示該像素值的個數,常見的有灰度直方圖和顏色直方圖。
- 直方圖均衡化
直方圖均衡化是一種利用灰度變換自動調節圖像對比度質量的方法,可以用于圖像增強等方面。比如在部分人臉識別的神經網絡中,會先對人臉圖像進行直方圖均衡化,從而增強對比度,提高檢測準確率。
MATLAB直方圖均衡化
在MATLAB中,通過imhist()計算直方圖,通過histeq()進行均衡化。
hist = imhist( img ); hist_eq = histeq( gray ,n ); % 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); % 顯示均衡化后直方圖原始圖像和三通道直方圖
灰度圖和均衡化后灰度圖
均衡化后像素點分布變得平均,不會聚集在某一區域,因此對比度更強。
c++直方圖均衡化
c++中通過calHist來獲取直方圖分量,通過equalizeHist進行直方圖均衡化
opencv 默認的均衡化灰度級數為8
// 輸入的圖像或數組 輸入數組個數 需要統計的通道dim 可選的操作掩碼 每個維度的直方圖尺寸的數組 每個維度中bin的取值范圍calcHist(&bgr_plane[0], 1, 0, Mat(), b_hist, 1, bins, ranges); equalizeHist(gray, gray2); // 直方圖均衡化c++直方圖均衡化很方便,但是統計直方圖有點麻煩,不知道是我方法沒用對還是咋的。
#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總結
以上是生活随笔為你收集整理的matlab 增加图像对比度_计算机视觉学习笔记6 图像直方图与直方图均衡化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最新公共充电桩总量TOP10省份出炉 广
- 下一篇: 海信手机天猫旗舰店终止运营