使用 Python 的 OpenCV 函数裁剪图像 [重复]
Posted
技术标签:
【中文标题】使用 Python 的 OpenCV 函数裁剪图像 [重复]【英文标题】:Cropping an Image in using OpenCV function for Python [duplicate] 【发布时间】:2018-11-14 16:54:27 【问题描述】:我需要一个用于 python 的 OpenCV 函数,它允许裁剪给定尺寸的图像。
我正在使用 cv2.UMat() 将图像加载到 GPU 上并在那里自行处理。因此,以下索引切片选项不适用于 UMat 对象。
image[CROP_DIMS[0]:-CROP_DIMS[1], CROP_DIMS[2]:-CROP_DIMS[3]])
为了优化和充分利用 GPU,我需要 OpenCV 函数来使用 OpenCV 函数裁剪图像,否则我将不得不从 GPU 获取图像并在裁剪后再次加载到 GPU 上。
版本: 蟒蛇 - 3.6.4 OpenCV - 3.4.1
我已经在堆栈溢出和谷歌上进行了相同的搜索,但没有找到任何合适的匹配答案。要么每个人都指向索引切片或以前的旧 opencv 版本的函数。
【问题讨论】:
【参考方案1】:试试这个:
import cv2
img = cv2.imread("input.png")
crop_img = img[y:y+h, x:x+w]
cv2.imshow("cropped", crop_img)
cv2.waitKey(0)
【讨论】:
我已经在使用这种方法,但为此,我必须从 GPU 检索图像,裁剪它并再次将其加载到 GPU。这太贵了。所以,我正在寻找一些相同的 OpenCV 函数。 你不能在 GPU 端自己做吗? 当然不是! cv2.UMat 对象不允许索引切片。 我怎么知道?你没有提到任何与此相关的事情。这个答案与你所问的一致。以我们能够理解您真正想要的方式更新您的问题。 已更新。但我只是简单地要求使用 OpenCV 函数来裁剪图像。这不是我问的。这与我提到的无法正常工作并找到 OpenCV 替代品的情况相同。以上是关于使用 Python 的 OpenCV 函数裁剪图像 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Python and OpenCV - 为啥用 OpenCV 处理的裁剪图像仍然可以影响原始图像?