วิธีใช้:สารบัญ

จาก Morange Wiki

วัตถุประสงค์

  • ในบทนี้เราจะเรียนรู้ที่จะค้นหาและพล็อต histograms 2D มันจะมีประโยชน์ในบทที่มา


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

มีตัวอย่างPython(ตัวอย่าง / python / color_histogram.py) การค้นหา histograms สี เราจะพยายามที่จะเข้าใจวิธีการสร้างเช่น histogram สีและมันจะเป็นประโยชน์ในการทำความเข้าใจหัวข้อต่อไปเช่น Histogram กลับฉาย
2D Histogram in OpenCV
มันค่อนข้างง่ายและคำนวณโดยใช้ฟังก์ชั่นเดียวกัน cv2.calcHist () สำหรับ histograms สีเราต้องแปลงภาพจาก BGR เพื่อ HSV (อย่าลืมว่าสำหรับ 1D histogram เราดัดแปลงมาจาก BGR ระดับสีเทา) สำหรับ histograms 2D, พารามิเตอร์ของมันจะได้รับการแก้ไขดังต่อไปนี้

  • ช่อง = [0,1] เพราะเราจำเป็นต้องดำเนินการทั้ง H และ S
  • bins = [180,256] 180 for H plane and 256 for S plane.
  • range = [0,180,0,256] Hue value lies between 0 and 180 & Saturation lies between 0 and 256.
 import cv2
 import numpy as np
 
 img = cv2.imread('home.jpg')
 hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
 
 hist = cv2.calcHist([hsv], [0, 1], None, [180, 256], [0, 180, 0, 256])

2D Histogram in Numpy
numpy นอกจากนี้ยังมีฟังก์ชั่นที่เฉพาะเจาะจงสำหรับนี้ np.histogram2d () (อย่าลืมว่าสำหรับ 1D histogram เราใช้ np.histogram ())

 import cv2
 import numpy as np
 from matplotlib import pyplot as plt
 
 img = cv2.imread('home.jpg')
 hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
 
 hist, xbins, ybins = np.histogram2d(h.ravel(),s.ravel(),[180,256],[[0,180],[0,256]])