Computer >> Máy Tính >  >> Lập trình >> C ++

Làm cách nào để thay đổi độ sáng của hình ảnh trong OpenCV bằng C ++?

Thay đổi độ sáng có nghĩa là thay đổi giá trị của pixel. Nó có nghĩa là cộng hoặc trừ giá trị một số giá trị số nguyên với giá trị hiện tại của mỗi pixel. Khi bạn thêm một số giá trị số nguyên với mỗi pixel, điều đó có nghĩa là bạn đang làm cho hình ảnh sáng hơn. Khi bạn trừ một số giá trị không đổi khỏi tất cả các pixel, bạn đang giảm độ sáng. Đầu tiên, chúng ta sẽ học cách tăng độ sáng và thứ hai, chúng ta sẽ học cách giảm độ sáng.

Tăng độ sáng

Tăng độ sáng bằng OpenCV rất dễ dàng. Để tăng độ sáng, hãy thêm một số giá trị bổ sung với mỗi kênh và độ sáng sẽ được tăng lên. Ví dụ, hình ảnh BRG có ba kênh xanh lam (B), xanh lục (G) và đỏ (R). Điều đó có nghĩa là giá trị hiện tại của một pixel sẽ là (B. G, R). Để tăng độ sáng, chúng ta phải thêm một số vô hướng với nó như (B, G, R) + (10, 10, 10) hoặc (B, G, R) + (20, 20, 20) hoặc bất kỳ số nào bạn muốn.

Ví dụ sau thực hiện việc làm sáng hình ảnh -

Ví dụ

#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);
}

Đầu ra

Làm cách nào để thay đổi độ sáng của hình ảnh trong OpenCV bằng C ++?