应该是都可以的,首先图像格式最好用32位或者24位图像格式,CV是可以转换的。其次ScanLine就是存储的图像中一行行的数据,所以只要将CV只的数据,按行的方式(如第一行是指针开始位置,第二行是开始位置加上图像宽度*4或者3,以此循环),复制到ScanLine就可以了。如果是FMX的话,可以用map、unmap的方式做,需要注意的一是图像是格式是否一致,否则要RB互换,二是坐标体系,bitmap好像是从左下开始的,VC好像是从左上吧,数据直接move就可以了。
data 是一个数据存储区指针而已,怎么转?你自己不填充没别的办法,而且C++还要注意 ,cv::Mat 如果定义成局部变量(不是new出来的),,data的内存是自动释放的。
不能转换,自己根据 cv::Mat 中的数据填充一张位图即可, 比如一个简单的方法,cv::Mat(C++) 或者IplImage(C语言)中,直接获取他的type,col,row,还有data属性,然后delphi通过这些参数直接创建一个位图填充像素即可。
1,183
社区成员
14,336
社区内容
加载中
试试用AI创作助手写篇文章吧