yamaken1343’s blog

技術ブログもどき

OpenCV(python)で外接長方形にそって画像を切り出す

調べるより書いたほうが速いコードですけどブログのネタがないんですね.

対象画像

f:id:yamaken1343:20180514180227p:plain

ここから赤丸の外接長方形にそって画像を切り出します.

コード

def bounding_rect_img(img):
    """
    外接長方形を切り出して画像として返す
    :param img: 入力画像
    :return: 出力画像
    """
    img_g = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # boundingRectが1チャンネルしか対応してないため変換する
    x, y, w, h = cv2.boundingRect(img_g)
    crop = img[y:y+h, x:x+w]
    return crop


def main2():

    img = cv2.imread("image_path")
    crop = bounding_rect_img(img)
    cv2.imwrite("save_path", crop)


if __name__ == '__main__':
    main2()

結果

f:id:yamaken1343:20180514180606p:plain

コメント

白背景の場合はcv2.bitwise_not()とか使ってください.