سؤال

أحاول العمل على عالم مرحبًا بسيطًا لـ 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.

نصائح أخرى

ما هو إصدار OpenCV الذي تستخدمه؟ لقد جربت الكود الخاص بك على أحدث (OpenCV2.0) وهو يعمل بشكل جيد. يمكنك تنزيل OpenCV2.0 من هنا.

إذا كنت تريد أحدث بناء ، فيمكنك التحقق من ذلك باستخدام SVN من هنا.

حاول إضافة HAVE_JPEG في تعريفات المعالج المسبق.

أنا واجهت نفس المشكلة. لا يقوم إصدار Debug بتحميل الصورة ، ولكن عندما أقوم بتجميعها وربطها كإصدار يعمل. آمل أن يساعد هذا

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top