您当前的位置: 首页 >  opencv

qianbo_insist

暂无认证

  • 1浏览

    0关注

    399博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

等比例缩放图片-opencv

qianbo_insist 发布时间:2021-07-10 12:36:21 ,浏览量:1

数据结构定义
如果dw 和 dh 有值,则缩放成为dw或者dh 为最终值的图片,fix_type中msrc为源图,mdest为需要生成的图
typedef enum fix_enum
{
   enum_x_fix,
   enum_y_fix,
   enum_xy_fix
}fix_enum;

typedef struct fix_type
{
	//int sw;
	//int sh;
	int dw;
	int dh;
	fix_enum fix;
//	string dest;
	Mat msrc;
	Mat mdest;
}fix_type;
等比例缩放函数
算法如下:
//1 指定x宽度,y成比例
//2 制定y高度,x成比例

String get_dest(String &srcImage,fix_type &ftype) {
	
	size_t t = srcImage.find_last_of(".");
	String destfile = srcImage.substr(0, t);
	String after = srcImage.substr(t, srcImage.length() - t);

	double scale = 1.0f;
	int width  = ftype.msrc.cols;
	int height = ftype.msrc.rows;

	int ddw = 0;
	int ddh = 0;
	switch (ftype.fix) 
	{
	case enum_x_fix: //width 宽度,y成比例
		scale = (float)ftype.dw / (float)width ;
		ddw = width*scale;
		ddh = height*scale;
		break;
	case enum_y_fix:
		scale = (double)ftype.dh / (double)height;
		ddw = width *scale;
		ddh = width *scale;
		break;
	case enum_xy_fix:
		ddw = ftype.dw;
		ddh = ftype.dh;
		break;
	}
	stringstream s;
	s            
关注
打赏
1663161521
查看更多评论
0.1286s