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

วิธีปรับ Contrast ใน OpenCV ด้วย C++


ภาพรวม

Contrast (คอนทราสต์) ควบคุมความคมชัดของภาพ: สูง = คม, ต่ำ = นุ่มนวล
ปรับ Contrast = คูณค่าพิกเซลด้วยค่าคงที่ (Alpha)

สูตร

dst = alpha * src + beta
  • Alpha (Contrast): >1 = เพิ่ม Contrast, <1 = ลด Contrast
  • Beta (Brightness): บวก/ลบค่าคงที่

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

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

int main() {
    Mat original = imread("mountain.jpg");
    Mat contrast;
    
    namedWindow("Original"); namedWindow("Contrast");
    
    // Alpha=2.0 (Contrast x2), Beta=0
    original.convertTo(contrast, -1, 2, 0);
    
    imshow("Original", original);
    imshow("Contrast", contrast);
    waitKey(0);
    return 0;
}

คำอธิบาย

  • convertTo(dst, dtype, alpha, beta): แปลงภาพพร้อม Scale (alpha) และ Shift (beta)
  • dtype = -1: ใช้ Type เดิมกับ Source
  • alpha = 2.0: คูณค่าพิกเซลทุกตัวด้วย 2 (Clamp ที่ 255 อัตโนมัติ)
  • beta = 0: ไม่ปรับ Brightness

ผลลัพธ์

ภาพ "Contrast" คมชัดกว่า "Original" รายละเอียดชัดเจนขึ้น

วิธีปรับ Contrast ใน OpenCV ด้วย C++