如何将labview图像类型转换为opencv图像类型(或Mat)?

时间:2015-04-06 10:51:21

标签: c++ opencv labview

我使用LabView从USB摄像头获取图像然后我想通过dll文件(在调用函数VI中使用)使用openCV函数处理此图像。现在我想转换Labview生成的图像格式以使用opencv处理它。我怎么能这样做?

4 个答案:

答案 0 :(得分:0)

使用任何可用的工具包。说,这一个:https://www.ehe-lab.com/OpenCV_Wrapper.html

答案 1 :(得分:0)

您可以使用" IMAQ GetImagePixelPtr"在LabView中获取图像上的指针。

在dll中,你应该可以这样:

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

答案 2 :(得分:0)

我发现保持内存不泄漏很复杂。我建议你使用工具包:http://ms-consultants.de/index.php/software/msc-image-processing/37-msc-image-processing-eng

如果您需要更多功能,它们还可以实现新功能。

答案 3 :(得分:0)

我发现graph.paddingLeft -= 100.0; IMAQ ImageToArrayIMAGEIMAQ GetImageSize很容易使用IMAGE_HEIGHT并将这些传递给DLL。他们这样称呼:

IMAGE_WIDTH

它的优势在于,通过将从DLL中获取的数组转换回图像,可以在Labview中看到cv::Mat src = cv::Mat(IMAGE_HEIGHT, IMAGE_WIDTH, CV_8UC1, IMAGE); 上的所有操作。