Matrix slice operations on images fail (Bug #1393)
Description
Doing simple matrix slice operations on images makes subsequent OpenCV methods working on the same image fail, i.e.:
Extracting a single channel:
1import cv2
2image = cv2.imread('door.png')
3image = image[:,:,1]
4cv2.imshow(u'Image', image)
5cv2.waitKey()
will output:
OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /tmp/homebrew-opencv-2.3.1a-SZiB/OpenCV-2.3.1/modules/core/src/array.cpp, line 2482 Traceback (most recent call last): File "./bwe.py", line 8, in <module> cv2.imshow(u'Image', image) cv2.error: /tmp/homebrew-opencv-2.3.1a-SZiB/OpenCV-2.3.1/modules/core/src/array.cpp:2482: error: (-206) Unrecognized or unsupported array type in function cvGetMat
Another example: Mirroring the image:
1import cv2
2image = cv2.imread('door.png')
3image = image[:,-1::-1,:]
4cv2.imshow(u'Image', image)
5cv2.waitKey()
will output:
OpenCV Error: Assertion failed (src.dims <= 2 && esz <= (size_t)32) in transpose, file /tmp/homebrew-opencv-2.3.1a-SZiB/OpenCV-2.3.1/modules/core/src/matrix.cpp, line 1680 terminate called throwing an exceptionAbort trap: 6
The funny thing is that inserting the following line of code after the matrix slice operation (line 3) will make both examples work as expected without errors:
image = image * 1
I'm using Mac OS X 10.7.1 with Xcode 4.1, Python 2.7.2 and OpenCV 2.3.1a; with Python and OpenCV installed using Homebrew.
Associated revisions
History
Updated by Pieter Eendebak over 13 years ago
I can confirm this issue on Ubuntu 11.10, Python 2.7.2
Updated by Alexander Shishkov about 13 years ago
- Description changed from Doing simple matrix slice operations on images makes subsequent [[OpenCV]] me... to Doing simple matrix slice operations on images makes subsequent OpenCV method... More
Updated by Alexander Shishkov almost 13 years ago
- Target version deleted ()
- Description changed from Doing simple matrix slice operations on images makes subsequent OpenCV method... to Doing simple matrix slice operations on images makes subsequent OpenCV method... More
Updated by Alexander Shishkov almost 13 years ago
- Assignee deleted (
Vadim Pisarevsky)
Updated by Alexander Shishkov almost 13 years ago
- Target version deleted ()
Updated by Kirill Kornyakov over 12 years ago
- Target version set to Next Hackathon
Updated by Vadim Pisarevsky over 12 years ago
Actually, the problem has been fixed about a week ago in 2.4 branch
- Target version changed from Next Hackathon to 2.4.3
- Status changed from Open to Done
- Assignee set to Vadim Pisarevsky