Reputation: 147
I am trying to resize the image of size (320, 800)
to (319,70)
. I am running this through two conda environments and both of them have the same version of opencv. The code is:
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
is of shape (720, 1280, 3)
It seems to work with python 3 but somehow, I get the following error with 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
I even looked at this answer for reference but it seems that I am getting the error the other way, instead of ssize
, the problem is with dsize
.
I have to use python 2 for some other processing and that's my constraint. Any suggestions on how can I solve this?
Upvotes: 2
Views: 381
Reputation: 21203
You already know to what dimension you want to resize the image.
You should rather use crop_img = cv2.resize(crop_img, (70, 319) , interpolation = cv2.INTER_CUBIC)
There are two ways to resize an image:
fx
and fy
are factors that multiply with the number of rows and column in the original image. Upvotes: 2