Matrix slice operations on images fail (Bug #1393)


Added by Ulrik Stephansen over 13 years ago. Updated over 12 years ago.


Status:Done Start date:
Priority:Normal Due date:
Assignee:Vadim Pisarevsky % Done:

0%

Category:python bindings
Target version:2.4.3
Affected version: Operating System:
Difficulty: HW Platform:
Pull request:

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

Revision d652cc72
Added by Vadim Pisarevsky over 12 years ago

fixed bugs #2100 (kind of) and #1393

[edit: cleaned whitespace]

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 Vadim Pisarevsky over 12 years ago

I think, it relates to #2100

  • 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

Also available in: Atom PDF