我使用LabView从USB摄像头获取图像然后我想通过dll文件(在调用函数VI中使用)使用openCV函数处理此图像。现在我想转换Labview生成的图像格式以使用opencv处理它。我怎么能这样做?
答案 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 ImageToArray
对IMAGE
和IMAQ GetImageSize
很容易使用IMAGE_HEIGHT
并将这些传递给DLL。他们这样称呼:
IMAGE_WIDTH
它的优势在于,通过将从DLL中获取的数组转换回图像,可以在Labview中看到cv::Mat src = cv::Mat(IMAGE_HEIGHT, IMAGE_WIDTH, CV_8UC1, IMAGE);
上的所有操作。