2016-12-27 20 views
5

मैं कोने का पता लगाने के लिए this tutorial का पालन कर रहा हूं और मुझे cv2.imshow का उपयोग करना है।cv2.imshow (निर्दिष्ट त्रुटि) का उपयोग करने में त्रुटि

import cv2 
import numpy as np 

filename = '1.jpg' 
img = cv2.imread(filename) 
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 

gray = np.float32(gray) 
dst = cv2.cornerHarris(gray,2,3,0.04) 

#result is dilated for marking the corners, not important 
dst = cv2.dilate(dst,None) 

# Threshold for an optimal value, it may vary depending on the image. 
img[dst>0.01*dst.max()]=[0,0,255] 

cv2.imshow('dst',img) 

मैं यह त्रुटि आई:

OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvShowImage, file /root/mc-x86-2.7/conda-bld/opencv-3_1482254836916/work/opencv-3.1.0/modules/highgui/src/window.cpp, line 545 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
cv2.error: /root/mc-x86-2.7/conda-bld/opencv-3_1482254836916/work/opencv-3.1.0/modules/highgui/src/window.cpp:545: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvShowImage 

तो, मैं libgtk2.0-देव और pkg-config स्थापित लेकिन यह समस्या का समाधान नहीं यहाँ मेरी कोड है। त्रुटि संदेश ने cmake चलाने के लिए कहा लेकिन कहाँ? मेरे ड्राइव में कोई CMakeLists.txt फ़ाइल नहीं है।

फिर, मैं इस वेबसाइट पर this one जैसे कुछ उत्तरों का पालन करता हूं: सबसे पहले, मैंने सीधे वेबसाइट पर ओपनसीवी डाउनलोड किया और मैं सेमेक चलाता हूं, बना देता हूं और इंस्टॉल करता हूं। सभी ठीक है, लेकिन मैं अब भी वही त्रुटि है जब मैं एनाकोंडा का उपयोग, लेकिन यह एक और संदेश जब मैं/usr/bin/अजगर से अजगर को खोलने मिला:

init done 
opengl support available 

क्षण के लिए, मैं मेरी छवि को नहीं दिखा सकते हैं। मुझे क्या करना है?

+0

आप ओपनसीवी के साथ स्थापित कर सकते हैं: conda install -c https://conda.binstar.org/menpo opencv। इसे भवन की आवश्यकता नहीं होगी। – Tejas

+0

मैंने पहले ही यह किया है। यह काम नहीं करता है; मुझे समान त्रुटि मिली। – Pierre

+0

क्या आपने सीएमके चलाने पर जीटीके सक्षम किया था? इसे डिफ़ॉल्ट रूप से अक्षम किया जा सकता है। – Headcrab

उत्तर

2

मेरे सवाल में, मैं दो समस्या नहीं थी:

  1. से/usr/lib/अजगर, मैं छवि दिखाने में असमर्थ था, लेकिन मैंने नहीं किया एक त्रुटि है,

  2. एनाकोंडा फ्रेमवर्क के साथ, फ़ंक्शन इम्शो लागू नहीं किया गया था।

पहले समस्या के लिए, यह वास्तव में आसान था, क्योंकि मैं प्रलेखन सही ढंग से पढ़ा नहीं था। इसमें कहा गया है, cv2.waitKey() समारोह के बारे में:

Besides binding keyboard events this function also processes many other GUI events, so you MUST use it to actually display the image.

तो, मैं तो बस (1) cv.imshow के बाद() छवि दिखाने के लिए cv2.waitKey कॉल करनी होगी।

दूसरा समस्या के लिए,

  • मैं एक मैनुअल विधि का इस्तेमाल इसे हल करने (मुझे यकीन है कि यह सबसे अच्छा है नहीं कर रहा हूँ, लेकिन यह काम करता है)। /usr/local/lib/ फ़ोल्डर में libopencv* फ़ाइलों द्वारा /home/user/anaconda3/lib फ़ोल्डर में सभी libopencv* फ़ाइलों को प्रतिस्थापित किया गया।

  • उसके बाद, मुझे '/usr/lib/i386-linux-gnu/libstdc++.so' फ़ाइल के साथ '/home/user/anaconda3/lib/libstdc++.so' फ़ाइल को अपडेट करना पड़ा।


वहाँ भी एक क्लीनर विकल्प है, लेकिन आप यह करने के लिए स्थापना प्रक्रिया प्रारंभ करना होगा। जब आप cmake कमांड चलाते हैं, तो पैरामीटर -D CMAKE_INSTALL_PREFIX को आपके एनाकोंडा फ़ोल्डर (मेरे लिए, यह /home/pierre/anaconda3/) का संदर्भ लेना है। अब आप Anacaonda साथ OpenCV का उपयोग कर सकते

make 
sudo make install 

, (लेकिन केवल एनाकोंडा के साथ, यदि आप /usr/bin/python लोड यह काम नहीं करता): उसके बाद, आप बस हमेशा की तरह स्थापना जारी रखने के लिए है।

संबंधित मुद्दे