python - Opencv,如何过度裁剪图像?
问题描述
我有一组任意图像。一半的图像是图片,一半是定义 ROIS 的掩码。
在我的程序的当前版本中,我使用 ROI 来裁剪图像(即,我在图像中提取与 ROI 掩码的边界框匹配的矩形)。问题是,ROI 掩码并不完美,在我的情况下,过度预测比预测不足要好。
所以我想复制的不仅仅是 ROI 矩形,但如果我这样做,我可能会尝试从图像中裁剪出来。
IE:
x, y, w, h = cv2.boundingRect(mask_contour)
img = img[int(y-h*0.05):int(y + h * 1.05), int(x-w*0.05):int(x + w * 1.05)]
可能会失败,因为它试图访问越界像素。我可以钳制这些值,但我想知道是否有更好的方法
解决方案
import cv2 as cv
import random
src = cv.imread('/home/stephen/lenna.png')
borderType = cv.BORDER_REPLICATE
boarderSize = .5
top = int(boarderSize * src.shape[0]) # shape[0] = rows
bottom = top
left = int(boarderSize * src.shape[1]) # shape[1] = cols
right = left
value = [random.randint(0,255), random.randint(0,255), random.randint(0,255)]
dst = cv.copyMakeBorder(src, top, bottom, left, right, borderType, None, value)
cv.imshow('img', dst)
c = cv.waitKey(0)
推荐阅读
- javascript - JavaScript:从文件阅读器中提取 base64 字符串
- ios - 减少文本字段中左视图和光标之间的差距
- amazon-web-services - AWS Cognito 角色限制调用 Lambda 的权限
- javascript - 在移动设备上将按空格键更改为屏幕按钮
- sas - 如何读取流内数据
- css - 我应该在哪里放置 OctoberCMS 的图像文件
- pointers - 无法附加到函数内的切片
- html - 如何使用css在圆形按钮内居中div
- angular - 除单个组件外的所有组件都使用哈希
- shopify - 如何通过仅采用产品名称字段的表单在 Shopify 的购物车中添加产品?