انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => نرم‌افزارهای فنی-مهندسی => نویسنده: robotic در 23 مهر 1391، 06:47 ب‌ظ

عنوان: مشکل opencv با GTK+
ارسال شده توسط: robotic در 23 مهر 1391، 06:47 ب‌ظ
من opencv 2.4.2 را روی kubuntu 12.04.1 LTS با کمک cmake به همراه TBB نصب کردم

اما وقتی در برنامه یک پنجره باز می کنم که تصویر را نمایش دهد ارور زیر را نشان می دهد

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 cvNamedWindow, file /home/dmerejkowsky/src/OpenCV-2.1.0/src/highgui/window.cpp, line 180
terminate called after throwing an instance of 'cv::Exception'
  what():  /home/dmerejkowsky/src/OpenCV-2.1.0/src/highgui/window.cpp:180: 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 cvNamedWindow

من ایتدا libgtk2.0-dev و pkg-config را نصب کردم سپس opencv را نصب کردم.

الان نمی دانم GTK+ 2.x را چه کار کنم آیا همان libgtk2.0-dev است؟ اگر همان است این ارور را چی کار کنم؟
عنوان: پاسخ : مشکل opencv با GTK+
ارسال شده توسط: دانیال بهزادی در 24 مهر 1391، 12:13 ق‌ظ
کدت چیه؟
قبلش مطمئن شو این‌ها رو نصب کردی:
libavcodec-dev libavformat-dev libavutil-dev libcv-dev libcvaux-dev
  libdc1394-22-dev libhighgui-dev libilmbase-dev libjasper-dev libjpeg-dev
  libjpeg-turbo8-dev libjpeg8-dev libopencv-calib3d-dev libopencv-calib3d2.3
  libopencv-contrib-dev libopencv-contrib2.3 libopencv-core-dev
  libopencv-core2.3 libopencv-features2d-dev libopencv-features2d2.3
  libopencv-flann-dev libopencv-flann2.3 libopencv-gpu2.3
  libopencv-highgui-dev libopencv-highgui2.3 libopencv-imgproc-dev
  libopencv-imgproc2.3 libopencv-legacy-dev libopencv-legacy2.3
  libopencv-ml-dev libopencv-ml2.3 libopencv-objdetect-dev
  libopencv-objdetect2.3 libopencv-video-dev libopencv-video2.3 libopenexr-dev
  libraw1394-dev libswscale-dev libtiff4-dev libtiffxx0c2
  libfaad-dev libgsm1-dev libogg-dev libschroedinger-dev libspeex-dev
  libtheora-dev libvorbis-dev libraw1394-doc libraw1394-tools
عنوان: پاسخ : مشکل opencv با GTK+
ارسال شده توسط: robotic در 24 مهر 1391، 07:53 ب‌ظ
چک کردم موارد زیر نصب نشده بود

libcv-dev
libcvaux-dev
libhighgui-dev
libfaad-dev
libgsm1-dev
libogg-dev
libschroedinger-dev
libspeex-dev
libtheora-dev
libvorbis-dev
libraw1394-doc
libraw1394-tools

این ها را هم نصب کردم. سپس opencv را پاک کردم.

سپس مجددا با دستورات زیر آن را نصب کردم

cmake -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
make
make install

اما همچنان همان ارور قبلی است.

یک برنامه نوشتم که یک پنجره باز کند.

#include </home/robotics/openCV-2.4.2/include/opencv/cv.h>
#include </home/robotics/openCV-2.4.2/include/opencv/highgui.h>
#include <iostream>

int main()
{

  cvNamedWindow("name");
  // IplImage* img =cvLoadImage('/home/robotics/stars-5.jpg');
  // cvShowImage("name", img);
  //for(int i=1;i<1000,i++);
  //cvReleaseImageHeader(&img);
  return 0;
}

من اپن سی وی را روی ویندوز نصب کردم و چندین پروژه نوشتم.

اما در یک پروژهی باید توی اوبونتو یا کوبونتو بنویسم با Qt cmake qibuild

نمی دانم با این ارور چی کار کنم.
عنوان: پاسخ : مشکل opencv با GTK+
ارسال شده توسط: robotic در 25 مهر 1391، 05:01 ب‌ظ
مشکل از کامپایلر بود

من با qibuild کامپایل می کردم ارور فوق را می داد

qibuild configure opencv-show
qibuild make opencv-show

امروز با gcc کامپایل کردم مشکل حل شد

gcc `pkg-config --cflags opencv` -o main main.cpp `pkg-config --libs opencv`
البته فهمیدم وقتی opencv را با cmake می سازید پوشه build سرکاری است

در واقع اپن سی وی در مسیر زیر نصب می شود

/usr/local/include/opencv2/
همچنین در لینوکس به جای

#include </home/robotics/openCV-2.4.2/include/opencv/cv.h>
#include </home/robotics/openCV-2.4.2/include/opencv/highgui.h>

باید از

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc_c.h"

استفاده کرد.

در واقع وقتی از qibuild استفاده می کردم کتابخانه را به جای این که از

/usr/local/include/opencv2/
استفاده کند از

/home/dmerejkowsky/src/OpenCV-2.1.0/src/
استفاده می کرد !!!

اینم کد برنامه اصلاح شده برای کسانی که می خواهند برای اولین بار در لینوکس یک برنامه اپن سی وی بنویسند

#include <iostream>


#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc_c.h"


int main()
{

  cvNamedWindow("Open",1);
  IplImage* img =cvLoadImage("/home/robotics/stars-5.jpg");
  cvWaitKey(0);
  cvReleaseImageHeader(&img);
  return 0;
}
عنوان: پاسخ : مشکل opencv با GTK+
ارسال شده توسط: robotic در 25 مهر 1391، 08:43 ب‌ظ
مشکلم با qibuild حل شد

تو فایل CMakeLists.txt به جای

cmake_minimum_required(VERSION 2.8)
project(opencv-show)

find_package(qibuild)

qi_create_bin(opencv-show "main.cpp")

qi_use_lib(opencv-show OPENCV)

باید از

cmake_minimum_required(VERSION 2.8)
project(opencv-show)

find_package(qibuild)

qi_create_bin(opencv-show "main.cpp")

qi_use_lib(opencv-show OPENCV2_CORE OPENCV2_HIGHGUI)

استفاده کنیم.

در ضمن opencv در لینوکس دستورات راحت تری دارد شبیه بیشتر شبیه نرم افزار متلب است تا ا\ن سی وی ویندوز !!!

برنامه ی اصلاح شده جهت تست اپن سی وی لینوکس به صورت زیر است

#include <iostream>


#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc_c.h"

using namespace std;
using namespace cv;


int main()
{
    Mat pic;
  cout << "Mat pic" << endl;
  pic = imread("/home/robotics/stars-5.jpg");
  cout << "imread" << endl;
  namedWindow("box",1);
  cout << "namedWindow" << endl;
  if( !pic.data )
  {
      cout << "Error loading pic" << endl;
      return -1;
  }
  imshow( "box", pic );
  cout << "imshow" << endl;
  cvWaitKey(0);
  cout << "end wait" << endl;
  return 0;
}