Jupyter에서 이미지 표시 방법 이해 (OpenCV의 imshow/matplotlib 활용)
9011 단어 파이썬JupyterOpenCVmatplotlib
소개
이 기사에서는, Jupyter상에서 화상을 표시시키는 방법 및, 인수나 리스트를 바꾸어 출력 화상과 대응하고 있는 기능을 이해하려고 하는 기사입니다.
소직은 기계 학습 초학자이므로, 의견·실수 있으면 지적 받을 수 있으면 대단히 감사합니다.
요약
이미지를 인라인으로 표시
pic.ipynb
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('012.JPG') #読み込みたい任意の画像をpic.ipynbと同フォルダに入れておきましょう。
fig = plt.figure(figsize=(10,10))
ax = fig.add_subplot(1,1,1)
ax.imshow(img)
ax.axis("off")
우선은 기본적으로 이미지를 표시했습니다.
여기서 (-0.5,719.5,719.5,-0.5)는 왼쪽 하단 좌표가 (-0.5,719.5)이고 오른쪽 위 좌표가 (719.5, -0.5)임을 나타냅니다.
이미지의 표시는 수학에서 배운 xy축 방향과 다르고, 왼쪽 상단에 원점이 오고 있으므로, 아래와 같이 됩니다.
이미지 크기 확인
pic.ipynb
img.shape
(720, 720, 3)
(세로 해상도, 가로 해상도, 채널 수)를 나타내므로, 720×720의 3 채널(=RGB의 칼라)이라고 하는 것을 알 수 있군요.
주의점으로서는, 이것을 xy로 나타내면(y, x, 채널수)가 되는 것입니다.
이미지 좌표와 그 위치의 이미지 표시
pic.ipynb
img[0,0]
array([162, 127, 77], dtype=uint8)
원점 위치(0,0)의 RGB값은 (162,127,77)인 것을 알았습니다. 또한 표시를 하면 다음과 같이 됩니다.
pic.ipynb
fig = plt.figure(figsize=(10,10))
ax = fig.add_subplot(111)
ax.imshow(img[0:1,0:1])#表示し値座標を範囲で指定する
ax.axis("on")
(0,0) 좌표를 표시하고 싶은 경우에도 [0:1,0:1]과 같이 범위에서 지정하지 않으면 에러가 나오므로 주의합시다.
x, y 좌표에 주의해서 표시
pic.ipynb
fig = plt.figure(figsize=(10,10))
ax = fig.add_subplot(111)
ax.imshow(img[0:720,0:10])
ax.axis("on")
img[0:720,0:10]로 지정하면, y:0~720, x:0~10으로 표시하기 때문에 세로 길이가 됩니다. x, y 좌표의 머리가 있으면 반대가 되므로, 주의합시다. 아래 이미지에서는 세로 이미지가 되네요.
resize 모듈을 사용하여 모자이크 적용
pic.ipynb
img_re= cv2.resize(img, dsize=None, fx=0.1, fy =0.1)
fig = plt.figure(figsize=(10,10))
ax = fig.add_subplot(1,1,1)
ax.imshow(img_re)
ax.axis("off")
cv2.resize() 모듈에 의해 화소수를 1/10으로 하는 것으로, 모자이크를 걸습니다.
resize에 있어서의 인수로, fx 및 fy가 x, y의 배율이 됩니다. 이번은 0.1(=10%)로 하는 것으로, 화소수를 1/10으로 했습니다.
투과율 증가
pic.ipynb
fig, ax = plt.subplots(facecolor="w")
ax.imshow(img, alpha=0.5)
plt.show()
imshow 모듈의 alpha에의 인수를 0~1의 범위로 지정해 투과율을 결정하는 것으로, 얇은 색조로 변화시킬 수 있습니다.
끝에
화상을 취급해 처리를 해 나가려고 하면(자), 이번의 조작은 기본적인 것입니다. 스스로 손을 움직여 실감을 얻는 것이 매우 중요하다고 생각했습니다.
프로그램 전문은 아래에 저장되어 있습니다.
htps : // 기주 b. 코 m / 후미 오 에이 씨 / 쥬 py r_ 피 c20200313
Reference
이 문제에 관하여(Jupyter에서 이미지 표시 방법 이해 (OpenCV의 imshow/matplotlib 활용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Fumio-eisan/items/6132b0e08c3f8311bdc4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Jupyter에서 이미지 표시 방법 이해 (OpenCV의 imshow/matplotlib 활용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Fumio-eisan/items/6132b0e08c3f8311bdc4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)