当使用warpPerspective
将图像缩放到更小时,图像周围有黑色区域。可能是:
或者
如何使黑色边框变为白色?
pts1 = np.float32([[minx,miny],[maxx,miny],[minx,maxy],[maxx,maxy]])
pts2 = np.float32([[minx + 20, miny + 20,
[maxx - 20, miny - 20],
[minx - 20, maxy + 20],
[maxx + 20, maxy + 20]])
M = cv2.getPerspectiveTransform(pts1,pts2)
dst = cv2.warpPerspective(dst, M, (width, height))
如何删除warpPerspective
后的黑色边框?
虽然文档中未将其列为可能的borderMode,但您也可以将borderMode=cv2.BORDER_设置为透明,并且它不会创建任何边框。它将保持目标图像的像素设置不变。通过这种方式,您可以使边框为白色或边框为您选择的图像。
例如,对于带有白色边框的图像:
将为转换的图像创建白色边框。除了边框之外,您还可以将任何内容作为背景图像加载,只要它与目标大小相同。例如,如果我有一个背景全景图,我正在扭曲一个图像到我可以使用全景图作为背景。
覆盖扭曲图像的全景图:
接受的答案不再有效。尝试用白色填充暴露区域。
如果您查看联机OpenCV文档(http://docs.opencv.org/modules/imgproc/doc/geometric_transformations.html)中
warpPerspective
函数的文档,会发现可以为该函数提供一个参数来指定常量边框颜色:其中
比如说:
应该将边框更改为恒定的白色。
相关问题 更多 >
编程相关推荐