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

วิธีลด Brightness ของภาพใน OpenCV ด้วย C++


ภาพรวม

การ ลด Brightness (ความสว่าง) ทำได้โดยการ ลบค่าคงที่ (Scalar) จากค่าพิกเซลทุกตัว

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

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

int main() {
    Mat original = imread("bright.jpg");
    Mat dimmer;
    
    namedWindow("Original"); namedWindow("Dimmer");
    
    // ลบ Scalar(80,80,80) จากทุก Channel (B,G,R)
    dimmer = original - Scalar(80, 80, 80);
    
    imshow("Original", original);
    imshow("Dimmer", dimmer);
    waitKey(0);
    return 0;
}

คำอธิบาย

  • Operator - กับ Scalar: ลบค่าจากทุก Channel
  • Scalar(80,80,80): ลดค่า B, G, R ลง 80 หน่วย
  • OpenCV จัดการ Saturation (Clamp 0-255) อัตโนมัติ
  • เทียบเท่า convertTo(dimmer, -1, 1, -80)

ผลลัพธ์

ภาพ "Dimmer" มืดกว่า "Original" รายละเอียดในพื้นที่สว่างชัดเจนขึ้น

วิธีลด Brightness ของภาพใน OpenCV ด้วย C++