Python OpenCV / トリミングで一枚の画像から複数のオブジェクトを書き出す方法

まくまく
まくまく
トリミングで一枚の画像から複数のオブジェクトを書き出してみようと思います。



使用するのはopenCV

使用するのは、画像処理ライブラリのopenCVです。ここではopenCVがインストールされているのを前提として書き進めていきます。

サンプルコード

import cv2
img = cv2.imread('test.jpg')
img_bit = cv2.bitwise_not(img)
img_gray = cv2.cvtColor(img_bit, cv2.COLOR_BGR2GRAY)
ret,img_th = cv2.threshold(img_gray,10,255,cv2.THRESH_BINARY)
img_con = img.copy()

contours, hierarchy = cv2.findContours(img_th, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

for i,cnt in enumerate(contours):
    x, y, width, height = cv2.boundingRect(cnt)
    if width > 50 or height > 50:
        img1 = img_con[y : y+height, x: x+width]
        cv2.imwrite("img_{}.jpg".format(i), img1)

元画像


この画像に写っている物体を、個々のjpeg画像として書き出します。

出力

コメント

上のプログラムで処理することで、個々の物体がjpgファイルとして書き出しされました。



タイトルとURLをコピーしました