ほぼ 2 日間、インターネットで解決策を検索してきましたが、見つけたものが私のコンピューターでは機能しないようです。
私が使用しているもの:
- Matrox Vio DUO
- OpenCV 2.4.5
- MIL-lite
- Ubuntu 10.04
ここにある cvcap_mil.cpp ファイルは既に試しました。
このコードは私のプロジェクトでも機能しません:
IplImage* rgb_frame;
rgb_frame = cvCreateImage(cvSize(w,h), IPL_DEPTH_8U, 3 );
MilImage = MbufAllocColor(MilSystem, 3, w, h,8+M_UNSIGNED,M_IMAGE + M_GRAB,M_NULL);
MbufGetColor(MilImage, M_BGR24+M_PACKED, M_ALL_BAND, (void*)(rgb_frame->imageData));
rgb_frame->origin = IPL_ORIGIN_BL;
cvFlip(rgb_frame,rgb_frame,0);
それを行う方法はありますか?
PS : Matrox Vio カードは正常に動作しています。
編集:白黒画像を取得する方法を見つけました。興味のある人のための解決策は次のとおりです。
MIL_ID MilApplication, /* Application identifier */
MilSystem, /* System identifier */
MilDigitizer, /* Digitizer identifier */
MilImageRGB, /* RGB Buffer */
MilImage1Child, /* R child */
MilImage2Child, /* G child */
MilImage3Child; /* B child */
//init
MappAlloc(M_DEFAULT,&MilApplication);
MsysAlloc(M_SYSTEM_VIO,M_DEFAULT,M_DEFAULT,&MilSystem);
MdigAlloc(MilSystem,M_DEFAULT,MIL_TEXT("M_DEFAULT"),M_DEFAULT,&MilDigitizer);
/*get width & height of cam*/
long width = MdigInquire(MilDigitizer,M_SIZE_X,M_NULL);
long height = MdigInquire(MilDigitizer,M_SIZE_Y,M_NULL);
MbufAllocColor(MilSystem,3,width,height,8+M_UNSIGNED,M_IMAGE+M_GRAB+M_PROC+M_DISP,&MilImageRGB); /*Erster Buffer*/
/*first Child (r channel)*/
MbufChildColor2d(MilImageRGB,M_RED, 0, 0, width , height ,&MilImage1Child);
MbufChildColor2d(MilImageRGB,M_GREEN, 0, 0, width , height ,&MilImage2Child); /*second Child (g channel)*/
MbufChildColor2d(MilImageRGB,M_BLUE, 0, 0, width , height ,&MilImage3Child); /*third Child (b channel)*/
IplImage *pIplImgProcessed = cvCreateImage ( cvSize ( width,height ), 8,1 );
/* get one image */
MdigGrab(MilDigitizer, MilImageRGB);
/*copy first child to buffer*/
MbufGet ( MilImage1Child, pIplImgProcessed->imageData );
// Visualise in a Qt label
Mat src(pIplImgProcessed);
QImage qImage = Mat2QImage(src);
QPixmap pixmap = QPixmap::fromImage(qImage);
ui->label_2->clear();
ui->label_2->setPixmap(pixmap.scaled(ui->label_2->size()));
//release
MdigFree(MilDigitizer);
MbufFree(MilImage1Child);
MbufFree(MilImage2Child);
MbufFree(MilImage3Child);
MbufFree(MilImageRGB);
MsysFree(MilSystem);
MappFree(MilApplication);
ご協力ありがとうございました。ティボー。