作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试 OpenCV 的 ROI 功能。有了这个,我试图裁剪出我加载的图像的一部分。之后,我试图保存图像并显示它。显示它不是什么大问题,但保存它是一个问题。图像被存储为一个大的黑色矩形,而不是实际裁剪的图像。这是我的代码:
import cv2
import numpy as np
from skimage.transform import rescale, resize
if __name__ == '__main__' :
# Read image
im = cv2.imread("/Path/to/Image.jpg")
img = resize(im, (400,400), mode='reflect')
# Select ROI
r = cv2.selectROI(img)
# Crop image
imCrop = img[int(r[1]):int(r[1]+r[3]), int(r[0]):int(r[0]+r[2])]
# Save first, then Display cropped image
cv2.imwrite("../../Desktop/Image.jpg", imCrop) # This is where there seems to be a problem
cv2.imshow("im", imCrop)
cv2.waitKey(0)
最佳答案
cv2.selectROI
返回 (x,y,w,h)
类似于 cv2.boundingRect()
的矩形的值.我的猜测是保存的黑色矩形是由于将边界框坐标转换为 int
时的舍入问题。类型。所以只需打开 (x,y,w,h)
直接坐标并使用 Numpy 切片提取 ROI。这是提取和保存 ROI 的最小工作示例:
输入图片 ->
提取 ROI 的程序 ->
节省的投资返回率
代码
import cv2
image = cv2.imread('1.jpg')
(x,y,w,h) = cv2.selectROI(image)
ROI = image[y:y+h, x:x+w]
cv2.imshow("ROI", ROI)
cv2.imwrite("ROI.png", ROI)
cv2.waitKey()
关于python - 如何正确使用 cv2.imwrite 将图像保存在带有 cv2.selectROI 的 openCV 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45946873/
我已经全新安装了 OpenCV 3.2,其中包含 contribs、ffmpeg 和 numpy。但是,当我尝试使用函数 selectROI 时,我得到了一个属性错误,我不知道为什么!!! 我尝试重新
我正在从事一个涉及跟踪对象的项目,我正在尝试让 OpenCV contrib repo 的 TrackerKCF 发挥作用。这是我在网上得到的示例代码: #include #include #in
我正在尝试 OpenCV 的 ROI 功能。有了这个,我试图裁剪出我加载的图像的一部分。之后,我试图保存图像并显示它。显示它不是什么大问题,但保存它是一个问题。图像被存储为一个大的黑色矩形,而不是实际
我是一名优秀的程序员,十分优秀!