opencv代码
#include <iostream>
#include<opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat temImage;
cv::Mat img = cv::imread("/media/minivision/Win10/xg/image/2002/07/20/big/img_663.jpg",CV_LOAD_IMAGE_UNCHANGED);
imshow("img", img);
int w = img.cols;
int h = img.rows;
float t = 1.;
float len = t * std::max(w, h);
int dst_w = 224, dst_h = 224;
cv::Mat dst = cv::Mat(cv::Size(dst_w, dst_h), CV_8UC3, cv::Scalar(255,255,255));
Mat imageROI;
if(len==w)
{
float ratio = (float)h/(float)w;
resize(img,temImage,Size(224,224*ratio),0,0,INTER_LINEAR);
imageROI = dst(Rect(0, ((dst_h-224*ratio)/2), temImage.cols, temImage.rows));
temImage.copyTo(imageROI);
}
else
{
float ratio = (float)w/(float)h;
resize(img,temImage,Size(224*ratio,224),0,0,INTER_LINEAR);
imageROI = dst(Rect(((dst_w-224*ratio)/2), 0, temImage.cols, temImage.rows));
temImage.copyTo(imageROI);
}
imshow("Result", dst);
cv::waitKey(0);
imwrite("/home/minivision/image/1.jpg",dst);
return 0;
}
最后
以上就是聪明大地最近收集整理的关于opencv 按等比例resize图片,并将少于规定大小的部分用白色填充的全部内容,更多相关opencv内容请搜索靠谱客的其他文章。
发表评论 取消回复