2015-04-06 512 views

回答

0

您可以使用“IMAQ GetImagePixelPtr”获取LabView中图像的指针。

在DLL中,你应该能够得到这样的:

int function(unsigned __int8 *LVImagePointer, int lineWidth, int height, int width) 
    { 
     Mat image(height, width, CV_8UC1, LVImagePointer, lineWidth); 
     ... 
    } 
+0

Vivien,opencv没有再次创建图像。输出为黑白损坏的图像:( – 2015-04-12 15:21:19

+0

是您的黑白图像 如果没有,你可以尝试: '垫温度(高度,宽度,CV_8UC4,LVImagePtr,4×线宽);' – Vivien 2015-04-13 18:06:31

+0

这是一个RGB?图像,我试过你添加的最后修改仍然我得到一个损坏的图像 – 2015-04-15 10:51:19

0

我发现它很容易使用IMAQ ImageToArrayIMAGEIMAQ GetImageSizeIMAGE_HEIGHTIMAGE_WIDTH并通过这些给DLL。他们被称为是这样的:

cv::Mat src = cv::Mat(IMAGE_HEIGHT, IMAGE_WIDTH, CV_8UC1, IMAGE); 

它的优点是在src所有操作都可以在LabVIEW中你走出DLL回的图像数组转换中可以看出。