gpt4 book ai didi

opencv - 将OpenCV IplImage或Mat复制到Freeimage FIBITMAP中

转载 作者:行者123 更新时间:2023-12-02 17:55:33 25 4
gpt4 key购买 nike

我需要在FreeImage(FIBITMAP)和OpenCV格式(IplImage和/或Mat)之间交换数据。我很好地将数据从FIBITMAP获取到IplImage或Mat中,因为FreeImage为您提供了功能FreeImage_GetScanLine,您可以将OPenCV imageData ptr设置为等于。

但是,我坚持如何做相反的事情,即一旦有了OpenCV镜像,如何将其数据转换为FreeImage镜像?

最佳答案

您只需要稍微小心一点就复制数据指针,很多图像格式都有填充以在例如4字节边界上的每一行开始。

如果您的图像具有GetScanLine()函数,那么制作一个空的plImage * / cv::Mat并使用从GetScanLine()返回的指针和cv::MAt的.ptr()成员进行内存复制,可能更安全。

cv::Mat &src        
int srcRowBytes = width * src.elemSize();

for (int ih=0;ih<height;ih++) {
memcpy(dest.pointer_to_row(ih),src.ptr(ih),srcRowBytes);
}

关于opencv - 将OpenCV IplImage或Mat复制到Freeimage FIBITMAP中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4927049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com