小编Lou*_*uis的帖子

cvTranspose提供不同的图像大小?

我是OpenCV的新手,我想转置灰度图像,但输出的大小错误.

// img is an unsigned char image
IplImage *img = cvLoadImage("image.jpg"); // where image is of width=668 height=493
int width  = img->width;
int height = img->height;
Run Code Online (Sandbox Code Playgroud)

我想转置它:

IplImage *imgT = cvCreateImage(cvSize(height,width),img->depth,img->nChannels);

cvTranspose(img,imgT);
Run Code Online (Sandbox Code Playgroud)

当我检查图像时,我看到原始图像img的大小为329324,这是正确的:493*668* 1字节,因为它是一个unsigned char.但是imgT尺寸是331328.

我不确定这是怎么回事.

编辑:1-我正在使用Windows XP和OpenCV 2.2.2-当我检查图像时,我的意思是当我看到变量imgT的值.例如imgT-> width,imgT-> heigt,imgT-> size等.

c opencv

3
推荐指数
1
解决办法
1641
查看次数

fwrite不会在C中保存完整数组

我有一个668x493的数组,我想保存.所以我正在做以下事情.

data:是一个指向保存值的数组的指针.

long lSize;
FILE* image_save;
image_save=fopen("image_save_file.bin","w+b");
fwrite(data,1,329324,image_save);
Run Code Online (Sandbox Code Playgroud)

但是,当我读回这个数组时:

char* check_image;

p1File=fopen("image_save_file.bin","r+b");

fseek (p1File , 0 , SEEK_END);
lSize = ftell (p1File);
fseek (p1File , 0 , SEEK_SET);
Run Code Online (Sandbox Code Playgroud)

当我检查lSize时,我看到它327680 ???

所以,当我做恐惧时,我只获得327680值!

请问,你能指出我的错误吗?

c c++ fwrite fread

0
推荐指数
2
解决办法
860
查看次数

标签 统计

c ×2

c++ ×1

fread ×1

fwrite ×1

opencv ×1