لماذا رفض مكتبة برمجية مفتوحة للرؤية الحاسوبية cvLoadImage ( "string.ext")، ولكنها تقبل cvLoadImage (ARGV [1])؟

StackOverflow https://stackoverflow.com/questions/445295

  •  22-07-2019
  •  | 
  •  

سؤال

#include "cv.h"
#include "highgui.h"
#include <stdio.h>


int main(int argc, char* argv[]){
    cvNamedWindow("Window1", CV_WINDOW_AUTOSIZE);
    IplImage* image = 0;
    ->->image = cvLoadImage(argv[1]);<-<-
    if(!image) printf("Unable to load image!");
    cvShowImage("Window1", image);
    char c = cvWaitKey(0);
    cvReleaseImage(&image);
    cvDestroyWindow("Window1");
    return 0;
}

إذا كنت محل الخط المشار إليه مع cvLoadImage("247.png") أحصل على إطار فارغ ولا تزال صورة تساوي الصفر

إذا أنا تشغيل إكس واعطائها 247.png كحجة، انها مجرد الطراز الأول. إذا وضعت "247.png" الحق في رمز وبناء وتشغيله البصرية ستوديو 2008، فإنه فشل. إذا كنت بناء وتشغيل من موجه الأوامر، وأنها تعمل.

لماذا هذا؟ أنا بالضجر قليلا من التحرك إلى الأمام من دون الحصول على هذه أسفل.

هل كانت مفيدة؟

المحلول

وتحت على المشاريع> Properties-> تكوين Properties-> التصحيح هناك حقل "دليل العمل". تعيين هذا إلى الدليل الذي تريد تنفيذه في وأنه ينبغي حل المشكلة.

نصائح أخرى

هل أنت متأكد "247.png" في دليل العمل الحالي عندما يكون لديك اسم ضمني؟

وتشغيل البرنامج تحت شيء من هذا القبيل عملية مراقبة لنرى ما هو في الحقيقة يتم فتح الملف (أو ما ملف I / O أخطاء قد تكون هناك).

وبعد تعديلك لإضافة مزيد من المعلومات على السؤال (المشكلة تحدث عند تشغيل من VS2008) هذا يكاد يكون من المؤكد مشكلتك. الدليل الحالي الذي يبدأ VS البرنامج تحت ليس هو الدليل الذي يحتوي على ملف "247.png".

ويمكن أن تحقق لمعرفة ما هو cwd بك؟

ويمكنك #include <direct.h> واستخدام وظيفة _getcwd لمعرفة ما هو عليه. ومن المحتمل أن يشير لك إلى الجاني.

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