首页 > 解决方案 > 如何从python中的大图像中提取图片

问题描述

示例谷歌图片

这个有一张大图。我只想提取大图像中的矩形图片。大图像质量很差。所以你不能只使用特定的RGB,背景可能不是白色的。

我是怎么做到的

怎么剪图片?

标签: pythonopencvvision

解决方案


import cv2

image = cv2.imread('image.jpg', cv2.IMREAD_UNCHANGED)

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5,5))
gradient = cv2.morphologyEx(gray, cv2.MORPH_GRADIENT, kernel)

contours = cv2.findContours(gradient, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[1]

for cnt in contours:
    (x,y,w,h) = cv2.boundingRect(cnt)
    cv2.rectangle(image, (x,y), (x+w,y+h), (0,0,255))

结果


推荐阅读