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

プラグラミング言語「PYTHON」を使ってみよう!!

業務自動化・効率化の実例を踏まえ、解説できればと思っています。対象は、プログラムを学び始めた初心者向けとなります。

今回の内容

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



使用するのは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をコピーしました