Hướng dẫn change brightness image opencv c++ - thay đổi độ sáng hình ảnh opencv c ++
Hướng dẫn trước: Thêm (pha trộn) hai hình ảnh bằng OpenCV Adding (blending) two images using OpenCV Show
Hướng dẫn tiếp theo: Biến đổi Fourier rời rạc Discrete Fourier Transform Mục tiêuTrong hướng dẫn này, bạn sẽ học cách:
Học thuyếtNotethe Giải thích dưới đây thuộc về cuốn sách Tầm nhìn máy tính: Thuật toán và ứng dụng của Richard SzeliskiĐang xử lý hình ảnh
Pixel biến đổi
Điều chỉnh độ sáng và độ tương phản
Mã sốGiải trình
Chúng tôi quan sát rằng CV :: mat :: zeros trả về trình khởi tạo không theo kiểu MATLAB dựa trên Image.Size () và Image.Type ()
Chú ý những điều sau (chỉ mã C ++):C++ code only):
Trong đó CV :: mat :: ConvertTo sẽ thực hiện hiệu quả*new_image = a*hình ảnh + beta*. Tuy nhiên, chúng tôi muốn chỉ cho bạn cách truy cập từng pixel. Trong mọi trường hợp, cả hai phương thức đều cho cùng một kết quả nhưng Convertto được tối ưu hóa hơn và hoạt động nhanh hơn rất nhiều. Kết quả
Ví dụ thực tếTrong đoạn này, chúng ta sẽ đưa vào thực tế những gì chúng ta đã học được để điều chỉnh một hình ảnh thiếu sáng suốt bằng cách điều chỉnh độ sáng và độ tương phản của hình ảnh. Chúng ta cũng sẽ thấy một kỹ thuật khác để điều chỉnh độ sáng của một hình ảnh gọi là hiệu chỉnh gamma. Điều chỉnh độ sáng và độ tương phảnHai quy trình điểm thường được sử dụng là nhân và bổ sung với hằng số: \ [g (x) = \ alpha f (x) + \ beta \] Các tham số \ (\ alpha> 0 \) và \ (\ beta \) thường được gọi là tham số mức tăng và sai lệch; Đôi khi các tham số này được cho là kiểm soát độ tương phản và độ sáng tương ứng. Bạn có thể nghĩ về \ (f (x) \) dưới dạng pixel hình ảnh nguồn và \ (g (x) \) dưới dạng pixel hình ảnh đầu ra. Sau đó, thuận tiện hơn, chúng ta có thể viết biểu thức như: Màu xám nhạt, biểu đồ của hình ảnh gốc, màu xám đen khi độ tương phản <0 trong gimp Lưu ý rằng các biểu đồ này đã thu được bằng cách sử dụng công cụ tương phản độ sáng trong phần mềm GIMP. Công cụ độ sáng phải giống hệt với các tham số sai lệch \ (\ beta \) nhưng công cụ tương phản dường như khác với mức tăng \ (\ alpha \) trong đó phạm vi đầu ra dường như được tập trung với GIMP (như bạn có thể nhận thấy trong biểu đồ). Nó có thể xảy ra khi chơi với độ lệch \ (\ beta \) sẽ cải thiện độ sáng nhưng đồng thời hình ảnh sẽ xuất hiện với một tấm màn nhẹ vì độ tương phản sẽ giảm. Mức tăng \ (\ alpha \) có thể được sử dụng để giảm hiệu ứng này nhưng do độ bão hòa, chúng ta sẽ mất một số chi tiết trong các vùng sáng ban đầu. Chỉnh sửa GammaCó thể điều chỉnh gamma để điều chỉnh độ sáng của hình ảnh bằng cách sử dụng phép biến đổi không tuyến tính giữa các giá trị đầu vào và các giá trị đầu ra được ánh xạ: \ [O = \ left (\ frac {i} {255} \ right)^{\ gamma} \ lần 255 \] Vì mối quan hệ này là phi tuyến tính, hiệu ứng sẽ không giống nhau đối với tất cả các pixel và sẽ phụ thuộc vào giá trị ban đầu của chúng. Vẽ cho các giá trị khác nhau của gamma When \( \gamma < 1 \), the original dark regions will be brighter and the histogram will be shifted to the right whereas it will be the opposite with \( \gamma > 1 \). Sửa một hình ảnh không được coi làHình ảnh sau đây đã được sửa bằng: \ (\ alpha = 1.3 \) và \ (\ beta = 40 \). Bởi Visem (công việc riêng) [CC BY-SA 3.0], thông qua Wikimedia Commons Độ sáng tổng thể đã được cải thiện nhưng bạn có thể nhận thấy rằng các đám mây hiện đang bão hòa rất nhiều do độ bão hòa số của việc thực hiện được sử dụng (làm nổi bật trong nhiếp ảnh). Hình ảnh sau đây đã được sửa bằng: \ (\ gamma = 0,4 \). Bởi Visem (công việc riêng) [CC BY-SA 3.0], thông qua Wikimedia Commons Độ sáng tổng thể đã được cải thiện nhưng bạn có thể nhận thấy rằng các đám mây hiện đang bão hòa rất nhiều do độ bão hòa số của việc thực hiện được sử dụng (làm nổi bật trong nhiếp ảnh). Hình ảnh sau đây đã được sửa bằng: \ (\ gamma = 0,4 \). Việc điều chỉnh gamma nên có xu hướng thêm hiệu ứng bão hòa ít hơn vì ánh xạ là không tuyến tính và không có độ bão hòa số có thể như trong phương pháp trước đó. Trái: Biểu đồ sau alpha, hiệu chỉnh beta; Trung tâm: Biểu đồ của hình ảnh gốc; Phải: Biểu đồ sau khi điều chỉnh gammaThey are basic techniques and are not intended to be used as a replacement of a raster graphics editor! Hình trước đó so sánh biểu đồ cho ba hình ảnh (các phạm vi y không giống nhau giữa ba biểu đồ). Bạn có thể nhận thấy rằng hầu hết các giá trị pixel nằm ở phần dưới của biểu đồ cho hình ảnh gốc. Sau khi hiệu chỉnh \ (\ alpha \), \ (\ beta \), chúng ta có thể quan sát một đỉnh lớn ở 255 do độ bão hòa cũng như sự thay đổi ở bên phải. Sau khi hiệu chỉnh gamma, biểu đồ được dịch chuyển sang bên phải nhưng các pixel trong các vùng tối bị dịch chuyển nhiều hơn (xem hình đường cong gamma) so với các pixel ở các vùng sáng.Trong hướng dẫn này, bạn đã thấy hai phương pháp đơn giản để điều chỉnh độ tương phản và độ sáng của một hình ảnh. Chúng là những kỹ thuật cơ bản và không được sử dụng để thay thế trình chỉnh sửa đồ họa raster! Mã số Mã cho hiệu chỉnh gamma:
Làm cách nào để thay đổi độ sáng của hình ảnh trong opencv?Tăng độ sáng bằng OpenCV là rất dễ dàng. Để tăng độ sáng, 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 màu xanh (B), màu xanh lá cây (g) và đỏ (r). Điều đó có nghĩa là giá trị hiện tại của pixel sẽ là (B.add some additional values with each channel, and the brightness will be increased. For example, BRG images have three channels blue (B), green (G) and red(R). That means the current value of a pixel will be (B.
Làm thế nào để tôi điều chỉnh độ sáng và độ tương phản trong opencv?Mat new_image = mat :: Zeros (Image.Size (), Image.Type ()) ;. Mat newImage = mat.Zeros (Image.Size (), Image.Type ()) ;. new_image = np.zeros (Image.Shape, Image.dtype). Image.convertto (new_image, -1, alpha, beta) ;. Image.convertto (NewImage, -1, alpha, beta) ;. new_image = cv.convertscaleabs (hình ảnh, alpha = alpha, beta = beta). Làm cách nào để thay đổi độ tương phản trên opencv?Để thay đổi độ tương phản, nhân các giá trị pixel với một số hằng số.Ví dụ: nếu nhân tất cả các giá trị pixel của hình ảnh với 2, thì giá trị của pixel sẽ được nhân đôi và hình ảnh sẽ trông sắc nét hơn.multiply the pixel values with some constant. For example, if multiply all the pixel values of an image by 2, then the pixel's value will be doubled, and the image will look sharper.
Làm thế nào tôi có thể thay đổi độ tương phản của một bức tranh?Trong thanh menu, chọn Hình ảnh> Điều chỉnh> Độ sáng/độ tương phản.Điều chỉnh thanh trượt độ sáng để thay đổi độ sáng tổng thể của hình ảnh.Điều chỉnh thanh trượt tương phản để tăng hoặc giảm độ tương phản hình ảnh.Adjust the Contrast slider to increase or decrease image contrast. |