یه مشکل کوچیک در Qt و OpenCV
سلام!
در کیوت قسمت تنظیمات پروژه (.pro) این کتابخونه ها رو اضافه کردم :
INCLUDEPATH += "C:\opencv_bin\install\include"
LIBS += "C:\opencv_bin\bin\*.dll"
و توی خود پروژم وقتی مینویسم :
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
هیچ مشکلی نیست اما ساده ترین کد برنامه ای مثله اینو :
int main()
{
cv::Mat mat;
mat = cv::imread("c:\\test.jpg");
cv::namedWindow("window");
cv::imshow("window",mat);
cv::waitKey(0);
return 0;
}
رو که اجرا میکنم، اجرا میشه اما انگار نه انگار، و عکسی به من نمایش داده نمیشه !!! http://www.mojsazan.com/forum/images...essanger/2.gif ینی بدجور حالمو گرفته !!!! http://www.mojsazan.com/forum/images...ssanger/12.gif
و بهد یه سوال دیگه ...
دیدم بعضی ها در سربگ برنامه cv.h و highgui.h رو مینویسن و دیگه تموم، مثلاً اینطور:
#include "cv.h"
#include "highgui.h"
اما من ک مینویسمشون زیرش خط سبز میکشه و انگار تعریف نشدست http://www.mojsazan.com/forum/images...essanger/2.gif
نقل قول: یه مشکل کوچیک در Qt و OpenCV
راستی الان تو فروم کیوت یه سوال پیدا کردم ک مشکله طرف مثل مشکل خودمه !!!:لبخندساده:
http://www.qtcentre.org/threads/4554...ghlight=opencv
اما نفهمیدم چطوری حلش کرده !!:اشتباه:
دوستان خواهش میکنم راهنمایی کمکم کنید !! :ناراحت:
نقل قول: یه مشکل کوچیک در Qt و OpenCV
در مورد سوال اولتون بایستی علاوه بر مسیر include\ مسیر include\opencv\ را هم اضافه کنید .
مسیر dll ها رو تو LIBS معرفی نمی کنید مسیر bin\ مربوط به opencv رو بایستی در Environment variable اضافه کنید.
شما بایستی هم مسیر lib ها و هم لیست lib ها را معرفی نماید.
LIBS += -LC:\OpenCV2.2\lib \
-lopencv_core220 \
-lopencv_highgui220 \
-lopencv_imgproc220 \
-lopencv_features2d220 \
-lopencv_calib3d220
جواب سوال دوم شما هم فرقی نمی کنه می تونید از آن 2 هدر قبلی نیز استفاده کنید از OpenCV2.2 که به سمت C++ متمایل شده از هدر های جدید استفاده میشه همونی که توی sample استفاده کردید در نسخه های جدید دسته بندی بهتری برای مجموعه هدرها ارائه شده.
نقل قول: یه مشکل کوچیک در Qt و OpenCV
خعلی گلی ...
ولی چند چیزشو نفهمیدم :لبخند:
نقل قول:
در مورد سوال اولتون بایستی علاوه بر مسیر include\ مسیر include\opencv\ را هم اضافه کنید .
چطوری؟ اینطوری : ؟!!
INCLUDEPATH+="C:\opencv_bin\install\include"/ "C:\opencv_bin\install\include\opencv"
نقل قول:
مسیر dll ها رو تو LIBS معرفی نمی کنید مسیر bin\ مربوط به opencv رو بایستی در Environment variable اضافه کنید.
ینی در :
System Property >> Advanced >> Environment variable
؟!
خب چیو اضاف کنم؟ چی بنویسم ؟ توی path؟ توی چی؟!! :لبخند:
نقل قول:
جواب سوال دوم شما هم فرقی نمی کنه می تونید از آن 2 هدر قبلی نیز استفاده کنید از OpenCV2.2 که به سمت C++ متمایل شده از هدر های جدید استفاده میشه همونی که توی sample استفاده کردید در نسخه های جدید دسته بندی بهتری برای مجموعه هدرها ارائه شده.
ینی #include "cv.h"
#include "highgui.h"
دیگه استفاده نمیشه؟! همونی ک خودم نوشتم جواب میده؟!
نقل قول: یه مشکل کوچیک در Qt و OpenCV
نقل قول:
نوشته شده توسط
AlgorithmX
چطوری؟ اینطوری : ؟!!
INCLUDEPATH+="C:\opencv_bin\install\include"/ "C:\opencv_bin\install\include\opencv"
بله
نقل قول:
نوشته شده توسط
AlgorithmX
ینی در :
System Property >> Advanced >> Environment variable
؟!
خب چیو اضاف کنم؟ چی بنویسم ؟ توی path؟ توی چی؟!! :لبخند:
بله .
C:\opencv_bin\install\bin را اضافه کنید
نقل قول:
نوشته شده توسط
AlgorithmX
ینی
#include "cv.h"
#include "highgui.h"
دیگه استفاده نمیشه؟! همونی ک خودم نوشتم جواب میده؟!
بله .
نقل قول: یه مشکل کوچیک در Qt و OpenCV
نقل قول:
نوشته شده توسط
mostafa.sataki
بله
بله .
C:\opencv_bin\install\bin را اضافه کنید
بله .
3 تا بله گرفتم ... میرم مرحله بعد !!! :لبخند:
1 ضمیمه
نقل قول: یه مشکل کوچیک در Qt و OpenCV
به دلیل تفاوت نسخه های opencv شما (کدشما) و cv من، مجبور به تغییر کد شما که این بوده :
LIBS += -LC:\OpenCV2.2\lib \
-lopencv_core220 \
-lopencv_highgui220 \
-lopencv_imgproc220 \
-lopencv_features2d220 \
-lopencv_calib3d220
رو به این تبدیل کنم چون اصلا اون فایل ها در شاخه ذکر شده در سیستم من وجود نداشتند! :
LIBS+=-LC:opencv_bin\lib\
-libopencv_core231\
-libopencv_highgui231\
-libopencv_imgproc231\
-libopencv_features2d321\
-libopencv_calib3d231
و شاخه های C:\opencv_bin\install\bin و (جهت اطمینان) C:\opencv_bin\bin رو به path در Environment variable اضاف کردم.
اما باز پروژه اجرا میشه و هیچ اتفاقی پیش نمیاد!!: پروژم رو هم ضینه کردم .. شاید نیاز به بازنگری داشته باشه!!
ممنونم ازت عزیز !!:لبخندساده:
نقل قول: یه مشکل کوچیک در Qt و OpenCV
من OpenCV رو با QT استفاده می کنم و مشکلی هم ندارم مطمن هستید که OpenCV رو درست make و compile کردید؟
نقل قول: یه مشکل کوچیک در Qt و OpenCV
میشه گفت آره ... چون عیناً از رویه آموزشی که تو سایت ها دیدم و یه فیلم که از یوتیوب دانلود کردم انجام دادم.
1. cmake-2.8.10.1-win32-x86 و OpenCV-2.3.1-win-superpack رو دانلود کردم.
2. cv رو در شاخه c:\opencv اسخراج کردم
3. "C:\Program Files (x86)\CMake 2.8\bin;C:\QtSDK\mingw\bin;C:\opencv_bin\install\b in;C:\opencv_bin\bin" رو به path های سیستم
4. آدرس اکسترک شده cv رو به cmake دادم
5. و در آدرس c:\opencv_bin کانفیگ
6. Qt و چنتا تیک دیگشو فعال کردم و کامفیگ و جنریت کردم
7. در کامند "mingw32-make" رو دارد کردم
8. اون متنهای رنگینکمانی (:لبخند: ) رد شدن
9. و mingw32-make install رو نوشتم
10. نصب شدم و سلام
11. تو qt .pro ی پروژم نوشتم :
INCLUDEPATH+="C:\opencv_bin\install\include"/ "C:\opencv_bin\install\include\opencv"
LIBS+=-LC:opencv_bin\lib\
-libopencv_core231\
-libopencv_highgui231\
-libopencv_imgproc231\
-libopencv_features2d321\
-libopencv_calib3d231
12. و در main.cpp :
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
int main()
{
cv::Mat mat;
mat = cv::imread("c:\\test.jpg");
cv::namedWindow("window");
cv::imshow("window",mat);
cv::waitKey(0);
return 0;
}
13. اجرا کردم و هیچ اتفاقی رخ نداد .. صفحه cmd 1 ثانیه مثله نور بازو بسته میشه!!
14. آخیهههی چقد نوشتم ... :لبخند:
نقل قول: یه مشکل کوچیک در Qt و OpenCV
حل شد .. 2باره کامپایلش کردمممممممممممممممممممممم مممممم بعده 3 بار ... ییهو دیدم 2روست شد !!!:کف: