準備
import cv2
import matplotlib.pyplot as plt
処理
# 画像を読み込む
img = cv2.imread("〜〜〜.png")
# 画像をグレースケール化
img_gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
# 画像を表示
plt.imshow(img_gray)
plt.gray()
edge抽出の数字、minサイズの切り捨てのところをいじれば、使えるようになった。
画像処理入門講座 : OpenCVとPythonで始める画像処理
輪郭を抽出
image, contours, hierarchy = cv2.findContours(img_gray,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
# img2に描画
img2 = cv2.drawContours(img_gray, contours, -1, (0,255,0), 3)
# img2を表示、保存
plt.imshow(img2)
cv2.imwrite('img2.png', img2)
plt.gray()
contoursが輪郭、hierachyが輪郭の階層情報
cv2.findContours、cv2.drawContoursについての解説↓
輪郭: 初めの一歩
【Python入門】小数点の操作を切り上げからroundまで完全理解!