Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

วิธีใช้ Histogram Equalizer ใน OpenCV ด้วย C++


ภาพรวม

สาธิตการใช้ Histogram Equalization กับ ภาพ Grayscale (Single Channel) ซึ่งเป็นการใช้งานตรงไปตรงมาของ equalizeHist()

แนวคิด Histogram

  • ภาพ 8-bit: ค่าพิกเซล 0-255 (0=ดำ, 255=ขาว)
  • Histogram: แกน X = Intensity, แกน Y = จำนวนพิกเซล
  • Equalization: กระจาย Histogram ให้แบน → Contrast ดีขึ้น

โค้ดตัวอย่าง C++

#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;

int main() {
    Mat original = imread("view.jpg");
    Mat gray, hist;
    
    cvtColor(original, gray, COLOR_BGR2GRAY);  // แปลง Grayscale
    equalizeHist(gray, hist);                  // Equalize
    
    namedWindow("Original"); imshow("Original", original);
    namedWindow("gray"); imshow("gray", gray);
    namedWindow("histogram"); imshow("histogram", hist);
    
    waitKey(0);
    return 0;
}

ผลลัพธ์

แสดง 3 หน้าต่าง: ภาพสีต้นฉบับ, ภาพ Grayscale, ภาพ Grayscale หลัง Equalize (Contrast ดีกว่า)

วิธีใช้ Histogram Equalizer ใน OpenCV ด้วย C++