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

Histogram Equalization ด้วยโมดูล OpenCV ใน Python

นี่คือวิธีใน image processing เพื่อปรับ contrast โดยใช้ histogram ของภาพ

วิธีนี้โดยปกติเพิ่ม global contrast ของภาพหลายภาพ โดยเฉพาะเมื่อ usable data ของภาพถูกแทนด้วย contrast values ที่ใกล้เคียงกัน และผ่านการปรับนี้ intensities สามารถกระจายได้ดีขึ้นบน histogram และช่วยให้พื้นที่ที่มี local contrast ต่ำ ได้รับ contrast สูงขึ้น

OpenCV มีฟังก์ชันสำหรับทำสิ่งนี้ คือ cv2.equalizeHist() input คือแค่ grayscale image และ output คือ histogram equalized image ของเรา

เทคนิคนี้ดีเมื่อ histogram ของภาพถูกจำกัดในพื้นที่เฉพาะ และจะไม่ทำงานดีในที่ที่มี large intensity variations และที่ histogram ครอบคลุมพื้นที่ใหญ่ คือมีทั้ง bright และ dark pixels อยู่

Input

Histogram Equalization ด้วยโมดูล OpenCV ใน Python

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

import cv2
import numpy as np

# อ่านภาพด้วย imread
my_img = cv2.imread('C:/Users/TP/Pictures/west bengal/bishnupur/pp.jpg', 0)
equ = cv2.equalizeHist(my_img)

# stacking ทั้งสองภาพเรียงติดกัน
res = np.hstack((my_img, equ))

# แสดงภาพ input vs output
cv2.imshow('image', res)
cv2.waitKey(0)
cv2.destroyAllWindows()

ผลลัพธ์

Histogram Equalization ด้วยโมดูล OpenCV ใน Python