회색 이미지의 히스토그램 얻기
개요
회색조 이미지의 히스토그램을 얻는 방법을 씁니다.
numpy 함수 histogram을 사용하는 방법
이미지를 읽으려면 openCV를 사용합니다.
그레이 스케일로 읽어들이므로 cv2.imread의 두 번째 인수에 "0"을 씁니다.
np.histogram(배열, bins)에서 bin당 요소 수와 bin(계급)의 경계 값을 배열로 반환합니다.
아래 코드는 각각 img_hist, img_bins에 저장합니다.
np.histogram에 주는 배열은, 이번은 그레이 스케일 화상(2차원)이므로, flatten()로 1차원 배열로 변환하고 있습니다.
마지막으로 matplotlib에서 히스토그램을 그립니다.
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 画像の読み込み
img = cv2.imread("Lena.jpg", 0)
# ヒストグラムの取得
img_hist, img_bins = np.histogram(np.array(img).flatten(), bins=np.arange(256+1))
# ヒストグラムの表示
plt.plot(img_hist)
plt.show()
OpenCV calcHist를 사용하는 방법
히스토그램 획득 부분만 위의 numpy 예제와 다릅니다.
cv2.calcHist(image, channel, mask, histsize, range)
채널은 히스토그램을 계산하는 이미지 채널
:그레이스케일이면 [0]
:컬러 화상이면 B, G, R에 상당하는 [0], [1], [2]를 지정
mask는 이미지의 모든 픽셀의 히스토그램을 계산할 때 None
histsize는 bin(계급)의 수.
range는 히스토그램을 계산하고 싶은 픽셀값의 범위. 일반적으로 [0, 256] 지정
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 画像の読み込み
img = cv2.imread("Lena.jpg", 0)
# ヒストグラムの取得
img_hist_cv = cv2.calcHist([img], [0], None, [256], [0, 256])
# ヒストグラムの表示
plt.plot(img_hist_cv)
plt.show()
+ 사용한 이미지
+ 얻은 히스토그램
요약
numpy 함수 histogram과 opencv calcHist를 사용하는 두 가지 방법으로 히스토그램을 얻습니다.
단순히 전체 이미지의 히스토그램을 찍는다면 numpy로하는 것이 더 쉬운 인상
Reference
이 문제에 관하여(회색 이미지의 히스토그램 얻기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tokkuri/items/79019d9a5bbeba79179f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 画像の読み込み
img = cv2.imread("Lena.jpg", 0)
# ヒストグラムの取得
img_hist, img_bins = np.histogram(np.array(img).flatten(), bins=np.arange(256+1))
# ヒストグラムの表示
plt.plot(img_hist)
plt.show()
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 画像の読み込み
img = cv2.imread("Lena.jpg", 0)
# ヒストグラムの取得
img_hist_cv = cv2.calcHist([img], [0], None, [256], [0, 256])
# ヒストグラムの表示
plt.plot(img_hist_cv)
plt.show()
Reference
이 문제에 관하여(회색 이미지의 히스토그램 얻기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tokkuri/items/79019d9a5bbeba79179f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)