gpt4 book ai didi

python - Opencv 在 python 2 中给出调整大小错误,但在 python 3 中没有

转载 作者:太空宇宙 更新时间:2023-11-03 21:31:55 25 4
gpt4 key购买 nike

我正在尝试将大小为 (320, 800) 的图像调整为 (319,70)。我在两个 conda 环境中运行它,它们都有相同版本的 opencv。代码是:

def pre_process(img, x1=319, x2=70, row_start=400, col_start=200):
cv_img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
cv_img = cv2.bilateralFilter(cv_img,9,75,75)
crop_img = cv_img[row_start:1080,col_start:1000]
print(crop_img.shape)
f_x = x1/crop_img.shape[1]
f_y = x2/crop_img.shape[0]
crop_img = cv2.resize(crop_img, None, fx = f_x, fy = f_y,interpolation = cv2.INTER_CUBIC)

img 的形状是 (720, 1280, 3)

它似乎适用于 python 3,但不知何故,我在 python 2 上遇到以下错误:

cv2.error: OpenCV(3.4.1) 
/feedstock_root/build_artefacts/opencv_1520722613778/work/opencv-
3.4.1/modules/imgproc/src/resize.cpp:4045: error: (-215) dsize.area() 0 || (inv_scale_x > 0 && inv_scale_y > 0) in function resize

我什至看了这个answer仅供引用,但似乎我以另一种方式收到错误,而不是 ssize,问题出在 dsize

我必须使用 python 2 进行其他处理,这是我的限制。关于如何解决这个问题有什么建议吗?

最佳答案

您已经知道要将图像调整到什么尺寸。

您应该使用 crop_img = cv2.resize(crop_img, (70, 319) , interpolation = cv2.INTER_CUBIC)

有两种调整图片大小的方法:

  1. 您使用的是按比例增加或减少带有值的图像。 fxfy 是与原始图像中的行数和列数相乘的因子。
  2. 第二种方法是明确说明您希望新图像的大小。由于您希望图像具有特定大小,因此可以使用此方法。

关于python - Opencv 在 python 2 中给出调整大小错误,但在 python 3 中没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50966725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com