OpenCV cvloadImage () لا يقوم بتحميل الصور في Visual Studio Debugger؟
-
22-09-2019 - |
سؤال
أحاول العمل على عالم مرحبًا بسيطًا لـ OpenCV ، لكنني نفاد الأفكار حول سبب عدم عمله.
عندما أقوم بتجميع وتشغيل هذا الرمز:
#include <cv.h>
#include <highgui.h>
int main(int argc, char* argv[])
{
IplImage* img = cvLoadImage( "myjpeg.jpg" );
cvNamedWindow( "MyJPG", CV_WINDOW_AUTOSIZE );
cvShowImage("MyJPG", img);
cvWaitKey(0);
cvReleaseImage( &img );
cvDestroyWindow( "MyJPG" );
return 0;
}
أحصل على مربع رمادي حوالي 200 × 200 بدلاً من ملف .jpg المشار إليه. إذا استخدمت JPG مختلفة ، أحصل على نفس النوع من النوافذ ، وإذا وضعت اسم ملف غير صالح ، أحصل على نافذة صغيرة جدًا (متوقعة).
أنا أستخدم Visual Studio 2008 ضمن Windows 7 Professional.
يبدو أن معظم البرامج العينة تعمل بشكل جيد ، لذلك أنا مرتبك بشكل مضاعف كيف يقوم هذا الرمز بتحميل عينة JPGs على ما يرام ولكن في الكود أعلاه لا يعمل (حتى جربت عينة JPEG).
تحديث
تعمل شركة Developments التي تنتجها Compiling Work بشكل جيد ، ومع ذلك يقوم مصحح Visual Studio 2008 بتحميل مؤشر فارغ في IMG في كل مرة أحاول تشغيل مصحح الأخطاء - بغض النظر عما إذا كان موقع الملف ضمنيًا أو صريحًا.
المحلول
يبدو حقًا أن هناك مشكلة في الطريق myjpeg.jpg
نظرًا لأن الدليل الحالي يمكن أن يكون مختلفًا عندما تعمل تحت تصحيح الأخطاء.
بشكل افتراضي ، الدليل الحالي الذي يستخدمه تصحيح Visual Studio هو الدليل الذي يحتوي على .vcproj
ملف ، ولكن يمكنك تغييره في خصائص المشروع (دليل التصحيح -> دليل العمل).
هل أنت متأكد 100 ٪ من أنك تمر المسار المطلق بشكل صحيح؟ حاول تمرير نفس المسار إلى fopen
ومعرفة ما إذا كانت تعود أيضًا NULL
. إذا كان الأمر كذلك ، فإن المسار غير صحيح.
إذا كنت تريد أن ترى بالضبط ما هو المكتبة التي تحاول فتحها يمكنك استخدامها مراقبة المشروع مع مرشح على myjpeg.jpg
.
نصائح أخرى
حاول إضافة HAVE_JPEG
في تعريفات المعالج المسبق.
أنا واجهت نفس المشكلة. لا يقوم إصدار Debug بتحميل الصورة ، ولكن عندما أقوم بتجميعها وربطها كإصدار يعمل. آمل أن يساعد هذا