تغییر اندازه تصویر به سایز مشخص بدون تغییر Ratio - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

تغییر اندازه تصویر به سایز مشخص بدون تغییر Ratio

0 امتیاز
سلام.

میخام تصویر را در یک rectangle مشخص فیت کنم بدون اینکه ratio را دستکاری کنم و از فضا هم بیشترین استفاده را کرده باشم.
سوال شده اردیبهشت 5, 1394  بوسیله ی شاهین (امتیاز 114)   5 21 30

1 پاسخ

+1 امتیاز
 
بهترین پاسخ

با استفاده از الگوریتم  زیر:

	cv::Rect fitOnSizeCorrect(const cv::Size& src, const cv::Size& dst,float& scale) {

		float s_a = (float)dst.width / src.width;
		float s_b = (float)dst.height / src.height;

		cv::Size size_a,size_b;

		size_a.width = src.width * s_a;
		size_a.height = src.height * s_a;

		size_b.width = src.width * s_b;
		size_b.height = src.height * s_b;
		
		cv::Size dst_size;
		if (size_a.width <= dst.width && size_a.height <= dst.height) {
			dst_size = size_a;
			scale = s_a;
		}
		else if (size_b.width <= dst.width && size_b.height <= dst.height) {
			dst_size = size_b;
			scale = s_b;
		}

		cv::Rect result(cv::Point(0, 0), dst_size);
		result.x = (dst.width - dst_size.width) / 2;
		result.y = (dst.height - dst_size.height) / 2;

		return result;
	}

 

پاسخ داده شده اردیبهشت 31, 1396 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
انتخاب شد خرداد 3, 1396 بوسیله ی شاهین
...