How to resize an image with OpenCV2.0 and Python2.6
image, image-processing, opencv, python, resize
Solution
If you wish to use CV2, you need to use the `resize` function.
For example, this will resize both axes by half:
small = cv2.resize(image, (0,0), fx=0.5, fy=0.5)
and this will resize the image to have 100 cols (width) and 50 rows (height):
resized_image = cv2.resize(image, (100, 50))
Another option is to use `scipy` module, by using:
small = scipy.misc.imresize(image, 0.5)
There are obviously more options you can read in the documentation of those functions (cv2.resize, scipy.misc.imresize).
Update: According to the SciPy documentation:
`imresize` is deprecated in SciPy 1.0.0, and will be removed in 1.2.0. Use `skimage.transform.resize` instead.
Note that if you're looking to resize by a factor, you may actually want `skimage.transform.rescale`.
Problem
I want to use OpenCV2.0 and Python2.6 to show resized images. I used and adopted this example but unfortunately, this code is for OpenCV2.1 and does not seem to be working on 2.0. Here my code: ``` import os, glob import cv ulpath = "exampleshq/" for infile in glob.glob( os.path.join(ulpath, "*.jpg") ): im = cv.LoadImage(infile) thumbnail = cv.CreateMat(im.rows/10, im.cols/10, cv.CV_8UC3) cv.Resize(im, thumbnail) cv.NamedWindow(infile) cv.ShowImage(infile, thumbnail) cv.WaitKey(0) cv.DestroyWindow(name) ``` Since I cannot use ``` cv.LoadImageM ``` I used ``` cv.LoadImage ``` instead, which was no problem in other applications. Nevertheless, cv.iplimage has no attribute rows, cols or size. Can anyone give me a hint, how to solve this problem?