목표 이미지 처리 마스터! 화상 처리 100개 노크 했다 Part4:감색·풀링
14329 단어 초보자목표화 처리 마스터 시리즈이미지 처리
이번에는 어떤 처리를 모르는 Q6감색과 어떤 처리인지 잘 아는 Q7,8 풀링에 도전합니다.
Q6:감색 처리
탈색이란 무엇입니까?
읽고 글자처럼 색을 줄이는 과정이었습니다.
이번의 경우 4*4*4색으로 감색이므로 RGB의 각각 256색으로 표현되고 있는 곳을 4개로 분할해, 그 1개 1개의 구간을 1개의 색으로 표현해 버리면 된다고 하는 이유 입니다.
공부에 사용한 기사는 이쪽
h tp // 우우 b. 그럼 t. 아 c. jp / ~ s - / g / ch2 / s p22. HTML
구현해보기
import cv2
import numpy as np
img = cv2.imread("imori.jpg")
out = np.zeros_like(img)
"""
val = { 32 ( 0 <= val < 64)
96 ( 64 <= val < 128)
160 (128 <= val < 192)
224 (192 <= val < 256)
"""
for i in range(128):
for j in range(128):
for k in range(3):
pic = img[i,j,k]
if pic <64 :
ans = 32
elif pic <128:
ans = 96
elif pic <192:
ans = 160
elif pic <256:
ans = 224
out[i,j,k,] = ans
#いつもの描画
cv2.imwrite("anspic_q6.jpg", out)
cv2.imshow("result", out)
cv2.waitKey(0)
cv2.destroyAllWindows()
갔다!
그러나 대답을 보면 거기에는 무려 뭐 우아한 대답이. 처음에는 우아함이 너무 의미가 없었기 때문에 잘 살펴보십시오.
원색의 처리 부분은 다음과 같습니다.
def dicrease_color(img):
out = img.copy()
out = out // 64 * 64 + 32
return out
출력을 64로 나눈 몫(자르기)(여기서 4분할로 되어 있다)에
64를 곱해 (여기서 0,64,128,192가 된다)
32를 더한다(32,96,160,224)
미안해!
정진하다
Q7:평균 풀링
이것은 내용을 알고 있었으므로 구현 만
import cv2
import numpy as np
img = cv2.imread("imori.jpg")
F = 8
#8*8で平均プーリング
out = img.copy()
H,W,C = img.shape #128,128,3
h = int(H/8) #16
w = int(W/8) #16
for i in range(w):
for j in range(h):
for c in range(C):
out[F*i:F*(i+1),F*j:F*(j+1),c] = np.mean(img[F*i:F*(i+1),F*j:F*(j+1),c]).astype(np.int)
# Save result
cv2.imwrite("anspic_q7.jpg", out)
cv2.imshow("result", out)
cv2.waitKey(0)
cv2.destroyAllWindows()
Q8 MAX 풀링
이것도 알고 있다! ! ! 하지만 구현한 적이 없다! ! ! 그렇게 할 것입니다.
mean을 max로 바꾸면 좋을 뿐입니다.
import cv2
import numpy as np
img = cv2.imread("imori.jpg")
F = 8
#8*8でMAXプーリング
out = img.copy()
H,W,C = img.shape #128,128,3
h = int(H/8) #16
w = int(W/8) #16
for i in range(w):
for j in range(h):
for c in range(C):
out[F*i:F*(i+1),F*j:F*(j+1),c] = np.max(img[F*i:F*(i+1),F*j:F*(j+1),c]).astype(np.int)
# Save result
cv2.imwrite("anspic_q8.jpg", out)
cv2.imshow("result", out)
cv2.waitKey(0)
cv2.destroyAllWindows()
했어!
끝에
마침내 알고있는 처리가되어 기쁩니다.
딥 러닝 했던 성과 마침내 나왔습니다.
Reference
이 문제에 관하여(목표 이미지 처리 마스터! 화상 처리 100개 노크 했다 Part4:감색·풀링), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kiii142/items/be3b6c2c2c385986adad
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import cv2
import numpy as np
img = cv2.imread("imori.jpg")
out = np.zeros_like(img)
"""
val = { 32 ( 0 <= val < 64)
96 ( 64 <= val < 128)
160 (128 <= val < 192)
224 (192 <= val < 256)
"""
for i in range(128):
for j in range(128):
for k in range(3):
pic = img[i,j,k]
if pic <64 :
ans = 32
elif pic <128:
ans = 96
elif pic <192:
ans = 160
elif pic <256:
ans = 224
out[i,j,k,] = ans
#いつもの描画
cv2.imwrite("anspic_q6.jpg", out)
cv2.imshow("result", out)
cv2.waitKey(0)
cv2.destroyAllWindows()
def dicrease_color(img):
out = img.copy()
out = out // 64 * 64 + 32
return out
이것은 내용을 알고 있었으므로 구현 만
import cv2
import numpy as np
img = cv2.imread("imori.jpg")
F = 8
#8*8で平均プーリング
out = img.copy()
H,W,C = img.shape #128,128,3
h = int(H/8) #16
w = int(W/8) #16
for i in range(w):
for j in range(h):
for c in range(C):
out[F*i:F*(i+1),F*j:F*(j+1),c] = np.mean(img[F*i:F*(i+1),F*j:F*(j+1),c]).astype(np.int)
# Save result
cv2.imwrite("anspic_q7.jpg", out)
cv2.imshow("result", out)
cv2.waitKey(0)
cv2.destroyAllWindows()
Q8 MAX 풀링
이것도 알고 있다! ! ! 하지만 구현한 적이 없다! ! ! 그렇게 할 것입니다.
mean을 max로 바꾸면 좋을 뿐입니다.
import cv2
import numpy as np
img = cv2.imread("imori.jpg")
F = 8
#8*8でMAXプーリング
out = img.copy()
H,W,C = img.shape #128,128,3
h = int(H/8) #16
w = int(W/8) #16
for i in range(w):
for j in range(h):
for c in range(C):
out[F*i:F*(i+1),F*j:F*(j+1),c] = np.max(img[F*i:F*(i+1),F*j:F*(j+1),c]).astype(np.int)
# Save result
cv2.imwrite("anspic_q8.jpg", out)
cv2.imshow("result", out)
cv2.waitKey(0)
cv2.destroyAllWindows()
했어!
끝에
마침내 알고있는 처리가되어 기쁩니다.
딥 러닝 했던 성과 마침내 나왔습니다.
Reference
이 문제에 관하여(목표 이미지 처리 마스터! 화상 처리 100개 노크 했다 Part4:감색·풀링), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kiii142/items/be3b6c2c2c385986adad
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import cv2
import numpy as np
img = cv2.imread("imori.jpg")
F = 8
#8*8でMAXプーリング
out = img.copy()
H,W,C = img.shape #128,128,3
h = int(H/8) #16
w = int(W/8) #16
for i in range(w):
for j in range(h):
for c in range(C):
out[F*i:F*(i+1),F*j:F*(j+1),c] = np.max(img[F*i:F*(i+1),F*j:F*(j+1),c]).astype(np.int)
# Save result
cv2.imwrite("anspic_q8.jpg", out)
cv2.imshow("result", out)
cv2.waitKey(0)
cv2.destroyAllWindows()
마침내 알고있는 처리가되어 기쁩니다.
딥 러닝 했던 성과 마침내 나왔습니다.
Reference
이 문제에 관하여(목표 이미지 처리 마스터! 화상 처리 100개 노크 했다 Part4:감색·풀링), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kiii142/items/be3b6c2c2c385986adad텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)