opencv:在不影响内容大小的情况下更改图像大小

时间:2012-08-18 05:55:46

标签: image opencv resize

我在应用图像处理后获得包含字符的图像。所有这些图像(具有作为内容的字符)具有不同的大小。我想调整相同大小的所有图像,而不影响其内容大小。见下图:

http://techsture.com/img.jpg

我尝试了一些功能将我的源图像与其他白色图像合并,但它需要两个具有相同大小的源图像。我需要通用的图像尺寸才能进一步处理。

请指导我如何将图像转换为通用尺寸?

谢谢

1 个答案:

答案 0 :(得分:4)

我会使用目标尺寸制作新图像,将此新图像中的ROI设置为您希望源图像显示的位置。然后使用cvResize。 它应该看起来像:

int newWidth = 100;
int newHeight = 100;
CvRect rect;

IplImage* source = cvLoadImage("c:/myimage");
IplImage* dest = cvCreateImage(cvSize(newWidth,newHeight),source->depth,source->nChannels);

rect.x = newWidth/2 - source->width/2;
rect.y = newHeight/2 - source->height/2;
rect.width = source->width;
rect.height = source->height;

cvSetImageROI(dest,rect);
cvResize(source,dest);
cvResetImageROI(dest);