wsl에서 우분투 9
2279 단어 윤곽python3-opencvWSL우분투
개요
wsl에서 python-opencv 해보자.
윤곽을 감지하고 배경을 지우는 것을 보았다.
환경
windows10 64bit
설치
sudo apt install Python3-opencv
원본 이미지
결과
샘플 코드
import numpy as np
import cv2
img = cv2.imread("cat0.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 5, 70)
edges = cv2.dilate(edges, None)
edges = cv2.erode(edges, None)
h, w = img.shape[ : 2]
back = np.ones((h, w, 3), np.uint8) * 255
contour_info = []
contours, _ = cv2.findContours(edges, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE)
for c in contours:
contour_info.append((c, cv2.isContourConvex(c), cv2.contourArea(c), ))
contour_info = sorted(contour_info, key = lambda c: c[2], reverse = True)
max_contour = contour_info[0]
mask = np.zeros(edges.shape)
cv2.fillConvexPoly(mask, max_contour[0], (255))
kernel = np.array([[0.0, -1.0, 0.0], [-1.0, 5.0, -1.0], [0.0, -1.0, 0.0]])
mask = cv2.filter2D(mask, -1, kernel)
res = np.where(np.expand_dims(mask < 1, -1), back, img)
cv2.imwrite('res14.png', res)
이상.
Reference
이 문제에 관하여(wsl에서 우분투 9), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ohisama@github/items/2b38678686d3f36920b0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
windows10 64bit
설치
sudo apt install Python3-opencv
원본 이미지
결과
샘플 코드
import numpy as np
import cv2
img = cv2.imread("cat0.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 5, 70)
edges = cv2.dilate(edges, None)
edges = cv2.erode(edges, None)
h, w = img.shape[ : 2]
back = np.ones((h, w, 3), np.uint8) * 255
contour_info = []
contours, _ = cv2.findContours(edges, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE)
for c in contours:
contour_info.append((c, cv2.isContourConvex(c), cv2.contourArea(c), ))
contour_info = sorted(contour_info, key = lambda c: c[2], reverse = True)
max_contour = contour_info[0]
mask = np.zeros(edges.shape)
cv2.fillConvexPoly(mask, max_contour[0], (255))
kernel = np.array([[0.0, -1.0, 0.0], [-1.0, 5.0, -1.0], [0.0, -1.0, 0.0]])
mask = cv2.filter2D(mask, -1, kernel)
res = np.where(np.expand_dims(mask < 1, -1), back, img)
cv2.imwrite('res14.png', res)
이상.
Reference
이 문제에 관하여(wsl에서 우분투 9), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ohisama@github/items/2b38678686d3f36920b0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
sudo apt install Python3-opencv
결과
샘플 코드
import numpy as np
import cv2
img = cv2.imread("cat0.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 5, 70)
edges = cv2.dilate(edges, None)
edges = cv2.erode(edges, None)
h, w = img.shape[ : 2]
back = np.ones((h, w, 3), np.uint8) * 255
contour_info = []
contours, _ = cv2.findContours(edges, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE)
for c in contours:
contour_info.append((c, cv2.isContourConvex(c), cv2.contourArea(c), ))
contour_info = sorted(contour_info, key = lambda c: c[2], reverse = True)
max_contour = contour_info[0]
mask = np.zeros(edges.shape)
cv2.fillConvexPoly(mask, max_contour[0], (255))
kernel = np.array([[0.0, -1.0, 0.0], [-1.0, 5.0, -1.0], [0.0, -1.0, 0.0]])
mask = cv2.filter2D(mask, -1, kernel)
res = np.where(np.expand_dims(mask < 1, -1), back, img)
cv2.imwrite('res14.png', res)
이상.
Reference
이 문제에 관하여(wsl에서 우분투 9), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ohisama@github/items/2b38678686d3f36920b0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import numpy as np
import cv2
img = cv2.imread("cat0.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 5, 70)
edges = cv2.dilate(edges, None)
edges = cv2.erode(edges, None)
h, w = img.shape[ : 2]
back = np.ones((h, w, 3), np.uint8) * 255
contour_info = []
contours, _ = cv2.findContours(edges, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE)
for c in contours:
contour_info.append((c, cv2.isContourConvex(c), cv2.contourArea(c), ))
contour_info = sorted(contour_info, key = lambda c: c[2], reverse = True)
max_contour = contour_info[0]
mask = np.zeros(edges.shape)
cv2.fillConvexPoly(mask, max_contour[0], (255))
kernel = np.array([[0.0, -1.0, 0.0], [-1.0, 5.0, -1.0], [0.0, -1.0, 0.0]])
mask = cv2.filter2D(mask, -1, kernel)
res = np.where(np.expand_dims(mask < 1, -1), back, img)
cv2.imwrite('res14.png', res)
이상.
Reference
이 문제에 관하여(wsl에서 우분투 9), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ohisama@github/items/2b38678686d3f36920b0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)