nullface
nullface

Reputation: 71

OpenCV Python AttributeError: 'module' object has no attribute 'imshow'

Full Code:

# import the necessary packages
from __future__ import print_function
import cv2

# load the image and convert it to grayscale
image = cv2.imread("jurassic_world.jpg")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imshow("preview", image)

# initialize the AKAZE descriptor, then detect keypoints and extract
# local invariant descriptors from the image
detector = cv2.AKAZE_create()
(kps, descs) = detector.detectAndCompute(gray, None)
print("keypoints: {}, descriptors: {}".format(len(kps), descs.shape))

# draw the keypoints and show the output image
cv2.drawKeypoints(image, kps, image, (0, 255, 0))
cv2.imshow("Output", image)
cv2.waitKey(0)

Error:

Traceback (most recent call last):
  File "test_akaze.py", line 8, in <module>
    cv2.imshow("preview", image)
AttributeError: 'module' object has no attribute 'imshow'

So I've tried to research an answer. There is a similar question on this site but I tried to do what they said and it didn't help: Here is what I did

I am sorry I am such an idiot. And I am stabbing at the dark. I appreciate any help.

Upvotes: 4

Views: 6808

Answers (1)

zindarod
zindarod

Reputation: 6468

From the output of pkg-config opencv --cflags --libs:

-I/usr/local/include -L/usr/local/lib -lopencv_imgcodecs -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_video -lopencv_bioinspired -lopencv_ccalib -lopencv_calib3d -lopencv_features2d -lopencv_face -lopencv_latentsvm -lopencv_objdetect -lopencv_ml -lopencv_reg -lopencv_surface_matching -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core -lopencv_hal

There's no libopencv_highgui.so present. You mentioned in the comments that you disabled VideoIO.

Follow this link for best way of building OpenCV.

Upvotes: 2

Related Questions