我正在1通道中读取图像,实际上我需要读取图像的数据,以便我可以对此源数据进行一些图像计算并将结果存储在目标中。 我的目的是将opencv转换为C函数,为此我逐步接近如下:
代码段如下:
char* fpath = "C:/Users/Desktop/ImWarping/test.bmp";
for (;;) {
Mat src;
src = imread(fpath, 0);
if (!src.data)
{
while (1);
}
Mat dst(640, 1280, CV_8UC1);
// Perform Image Warping
warpIm(mLUT, src.data, dst.data, src.cols, src.rows, dst.cols, dst.rows);
// Display
imshow("Original Video", src);
imshow("Corrected Video", dst);
waitKey(100000);
if (waitKey(1) >= 0) {
break;
}
任何人都可以提供关于如何将src.data存储到文本文件的输入。 或者那将是很好的,如果任何人请指导我将其转换为纯C函数,我的意思是不应该使用opencv调用。 我试图在ARM处理器上移植它,这是我尝试转换为C函数的基本原因。
找到解决方案:
char* fpath = "C:/Users/uids8702/Desktop/LDC_ImageWarping_v1.0/test.bmp";
for (;;) {
Mat src;
src = imread(fpath, 0);
if (!src.data)
{
while (1);
}
update_src(src.data);
在函数定义中:
update_src(uint8_t* srcdata)
{
FILE* fpath = fopen("C:/Users/uids8702/Desktop/LDC_ImageWarping_v1.0/dst_data.txt", "w");
if (fpath == NULL)
{
printf("Error opening file\n");
exit(1);
}
static int32_t t = 0, u = 0;
for (t = 0; t < dstHeight; t++)
{
printf("In main loop\n");
for (u = 0; u < dstWidth; u++)
{
printf("dst data is %d\n", *(dstData));
fprintf(fpath, "%d,", *(dstData));
dstData++;
}
}
}
特别感谢@Mark提出了很好的想法。