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

จะเปลี่ยนความสว่างของภาพใน OpenCV โดยใช้ C ++ ได้อย่างไร?


การเปลี่ยนความสว่างหมายถึงการเปลี่ยนค่าของพิกเซล หมายถึงการบวกหรือลบค่าจำนวนเต็มด้วยค่าปัจจุบันของแต่ละพิกเซล เมื่อคุณเพิ่มค่าจำนวนเต็มกับทุกพิกเซล หมายความว่าคุณกำลังทำให้ภาพสว่างขึ้น เมื่อคุณลบค่าคงที่บางค่าออกจากพิกเซลทั้งหมด คุณกำลังลดความสว่างลง อันดับแรก เราจะเรียนรู้วิธีเพิ่มความสว่าง และอย่างที่สอง เราจะเรียนรู้วิธีลดความสว่าง

เพิ่มความสว่าง

การเพิ่มความสว่างโดยใช้ OpenCV นั้นง่ายมาก หากต้องการเพิ่มความสว่าง ให้เพิ่มค่าเพิ่มเติมกับแต่ละช่องสัญญาณ แล้วความสว่างจะเพิ่มขึ้น ตัวอย่างเช่น รูปภาพ BRG มีสามช่องสีน้ำเงิน (B), สีเขียว (G) และสีแดง (R) นั่นหมายความว่าค่าปัจจุบันของพิกเซลจะเป็น (B. G, R) เพื่อเพิ่มความสว่าง เราต้องเพิ่มจำนวนสเกลาร์ด้วย เช่น (B, G, R) + (10, 10, 10) หรือ (B, G, R) + (20, 20, 20) หรือเลขอะไรก็ตาม ที่คุณต้องการ

ตัวอย่างต่อไปนี้ทำให้ภาพสว่างขึ้น -

ตัวอย่าง

#include<iostream>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
int main() {
   Mat original;//Declaring a matrix to load the original image//
   Mat brighter;//Declaring a matrix to load the image after changing the brightness//
   namedWindow("Original");//Declaring window to show the original image//
   namedWindow("Brighter");//Declaring window to show the brighter image//
   original = imread("bright.jpg");
   brighter = original + Scalar(80, 80, 80);//adding integer value to change the brightness//
   imshow("Original", original);//showing original image//
   imshow("Brighter", brighter);//showing brighter image//
   waitKey(0);//wait for keystroke//
   return(0);
}

ผลลัพธ์

จะเปลี่ยนความสว่างของภาพใน OpenCV โดยใช้ C ++ ได้อย่างไร?