利用opencv2识别图像中的大于100小于130像素的边框并截取该边框另存为新图片
可以使用OpenCV2库来实现图像中边框的识别和截取。下面是一个示例代码:
import cv2
# 读取图像
image = cv2.imread('image.jpg')
# 将图像转换为灰度图
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 使用Canny算法进行边缘检测
edges = cv2.Canny(gray, 100, 130)
# 查找边缘轮廓
contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 遍历每个轮廓
for contour in contours:
# 计算轮廓的边界框
x, y, w, h = cv2.boundingRect(contour)
# 如果边界框的面积大于100并且小于130
if w * h > 100 and w * h < 130:
# 截取边界框内的图像
roi = image[y:y+h, x:x+w]
# 保存截取的图像
cv2.imwrite('new_image.jpg', roi)
break # 如果只需要保存第一个符合条件的边框,可以添加break语句
以上代码中,首先读取图像并将其转换为灰度图。然后使用Canny算法进行边缘检测,得到图像的边缘。接着使用findContours函数查找边缘轮廓。然后遍历每个轮廓,计算轮廓的边界框,并判断边界框的面积是否在要求的范围内。如果满足条件,则截取边界框内的图像,并保存为新的图片。注意,如果只需要保存第一个符合条件的边框,可以添加break语句
原文地址: https://www.cveoy.top/t/topic/hWWH 著作权归作者所有。请勿转载和采集!