목표 이미지 처리 마스터! 화상 처리 100개 노크 했다 Part6:Q12와 Q20
10711 단어 초보자목표화 처리 마스터 시리즈이미지 처리
Q12: 모션 필터
지쳐 왔기 때문에 특히 아무것도 쓰지 않습니다만 최초 필터의 사이즈 미스라고 해서 전혀 처리 걸리지 않아서 당황했습니다. print 버려 어떻게든 원인 규명. 범 실수 무서운
이번 기억은 np.diag
import cv2
import numpy as np
#input
img = cv2.imread("imori.jpg")
H,W,C = img.shape
print(img.shape)
#Filter
#kernel size
k = 3
K = np.diag([1]*k).astype(np.float)
K /= k
#K.shape (3,3)
#K = [[1/3,0,0],[0,1/3,0],[0,0,1/3]]
#zero pad
out = np.zeros((H+2,W+2,C) , dtype=np.float)
out[1:1+H,1:1+W,:] = img.copy().astype(np.float)
tmp = out.copy()
#print(tmp)
#filtered
for y in range(H):
for x in range(W):
for c in range(C):
out[1+y,1+x,c] = np.sum( K * tmp[y:y+3,x:x+3,c])
#remove zero pad
out = out[1:1+H,1:1+H,:].astype(np.uint8)
print(out)
cv2.imwrite("anspic_q12.jpg", out)
cv2.imshow("result", out)
cv2.waitKey(0)
cv2.destroyAllWindows()
Q20:히스토그램 표시
이번 참고
h tps://py 쵸타타 s 시엔세.ぁゔぉx. 인후 / 마 tp t b / % 3 % 83 % 92 % 3 % 82 % B9 % 3 % 83 % 88 % 3 % 82 % B0 % 3 % 83 % 9 % 3 %83%아0
이것은 가능합니다! 라고 생각해 보니 힘들었다.
import cv2
import numpy as np
import matplotlib.pyplot as plt
#input
img = cv2.imread("imori_dark.jpg").astype(np.float)
plt.hist(img, bins=255, range=(0,255))
plt.savefig("out.png")
plt.show()
위처럼 쓰면 화가났다.
# python q20.py
Traceback (most recent call last):
File "q20.py", line 8, in <module>
plt.hist(img, bins=255, range=(0,255))
File "/usr/local/lib/python3.7/site-packages/matplotlib/pyplot.py", line 2610, in hist
if data is not None else {}), **kwargs)
File "/usr/local/lib/python3.7/site-packages/matplotlib/__init__.py", line 1543, in inner
return func(ax, *map(sanitize_sequence, args), **kwargs)
File "/usr/local/lib/python3.7/site-packages/matplotlib/axes/_axes.py", line 6569, in hist
x = cbook._reshape_2D(x, 'x')
File "/usr/local/lib/python3.7/site-packages/matplotlib/cbook/__init__.py", line 1386, in _reshape_2D
raise ValueError("{} must have 2 or fewer dimensions".format(name))
ValueError: x must have 2 or fewer dimensions
데이터의 배열이 2차원 이상이 되어 있다고 화났습니다.
1차원이 되도록 변환
np.ravel 사용
참고
htps : //에서. 응 kmk. 메 / py 텐 - 없는 mpy - ゔ ぇ l - ぁ
import cv2
import numpy as np
import matplotlib.pyplot as plt
#input
img = cv2.imread("imori_dark.jpg").astype(np.float)
plt.hist(img.ravel(), bins=255, range=(0,255))
plt.savefig("out.png")
plt.show()
그릴 수 있었다!
결론
역시 뭔가 표시할 수 있어서 기쁩니다
Reference
이 문제에 관하여(목표 이미지 처리 마스터! 화상 처리 100개 노크 했다 Part6:Q12와 Q20), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kiii142/items/9103d2647112c5f40f2d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import cv2
import numpy as np
#input
img = cv2.imread("imori.jpg")
H,W,C = img.shape
print(img.shape)
#Filter
#kernel size
k = 3
K = np.diag([1]*k).astype(np.float)
K /= k
#K.shape (3,3)
#K = [[1/3,0,0],[0,1/3,0],[0,0,1/3]]
#zero pad
out = np.zeros((H+2,W+2,C) , dtype=np.float)
out[1:1+H,1:1+W,:] = img.copy().astype(np.float)
tmp = out.copy()
#print(tmp)
#filtered
for y in range(H):
for x in range(W):
for c in range(C):
out[1+y,1+x,c] = np.sum( K * tmp[y:y+3,x:x+3,c])
#remove zero pad
out = out[1:1+H,1:1+H,:].astype(np.uint8)
print(out)
cv2.imwrite("anspic_q12.jpg", out)
cv2.imshow("result", out)
cv2.waitKey(0)
cv2.destroyAllWindows()
이번 참고
h tps://py 쵸타타 s 시엔세.ぁゔぉx. 인후 / 마 tp t b / % 3 % 83 % 92 % 3 % 82 % B9 % 3 % 83 % 88 % 3 % 82 % B0 % 3 % 83 % 9 % 3 %83%아0
이것은 가능합니다! 라고 생각해 보니 힘들었다.
import cv2
import numpy as np
import matplotlib.pyplot as plt
#input
img = cv2.imread("imori_dark.jpg").astype(np.float)
plt.hist(img, bins=255, range=(0,255))
plt.savefig("out.png")
plt.show()
위처럼 쓰면 화가났다.
# python q20.py
Traceback (most recent call last):
File "q20.py", line 8, in <module>
plt.hist(img, bins=255, range=(0,255))
File "/usr/local/lib/python3.7/site-packages/matplotlib/pyplot.py", line 2610, in hist
if data is not None else {}), **kwargs)
File "/usr/local/lib/python3.7/site-packages/matplotlib/__init__.py", line 1543, in inner
return func(ax, *map(sanitize_sequence, args), **kwargs)
File "/usr/local/lib/python3.7/site-packages/matplotlib/axes/_axes.py", line 6569, in hist
x = cbook._reshape_2D(x, 'x')
File "/usr/local/lib/python3.7/site-packages/matplotlib/cbook/__init__.py", line 1386, in _reshape_2D
raise ValueError("{} must have 2 or fewer dimensions".format(name))
ValueError: x must have 2 or fewer dimensions
데이터의 배열이 2차원 이상이 되어 있다고 화났습니다.
1차원이 되도록 변환
np.ravel 사용
참고
htps : //에서. 응 kmk. 메 / py 텐 - 없는 mpy - ゔ ぇ l - ぁ
import cv2
import numpy as np
import matplotlib.pyplot as plt
#input
img = cv2.imread("imori_dark.jpg").astype(np.float)
plt.hist(img.ravel(), bins=255, range=(0,255))
plt.savefig("out.png")
plt.show()
그릴 수 있었다!
결론
역시 뭔가 표시할 수 있어서 기쁩니다
Reference
이 문제에 관하여(목표 이미지 처리 마스터! 화상 처리 100개 노크 했다 Part6:Q12와 Q20), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kiii142/items/9103d2647112c5f40f2d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(목표 이미지 처리 마스터! 화상 처리 100개 노크 했다 Part6:Q12와 Q20), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kiii142/items/9103d2647112c5f40f2d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)