您的位置:首页 > 编程语言

OpenCV编程->图像边界拓展copyMakeBorder

2017-09-23 16:16 801 查看
//打开原始图像
string s[13] = { "ImageRGBL1.jpg", "ImageRGBL2.jpg", "ImageRGBL3.jpg",
"ImageRGBL4.jpg", "ImageRGBL5.jpg", "ImageRGBL6.jpg",
"ImageRGBL7.jpg", "ImageRGBL8.jpg", "ImageRGBL9.jpg" ,
"ImageRGBL10.jpg", "ImageRGBL11.jpg", "ImageRGBL12.jpg","ImageRGBL13.jpg" };
//保存变焦后图像
string s1[13] = { "ImageRGB1.jpg", "ImageRGB2.jpg", "ImageRGB3.jpg",
"ImageRGB4.jpg", "ImageRGB5.jpg", "ImageRGB6.jpg",
"ImageRGB7.jpg", "ImageRGB8.jpg", "ImageRGB9.jpg",
"ImageRGB10.jpg", "ImageRGB11.jpg", "ImageRGB12.jpg", "ImageRGB13.jpg" };
Mat imgread, imgchange;

// 1024/960=1.0667
double scale = 0.8249;
double F=2900;

//颜色随机值
Scalar value;
//设置随机颜色
value = Scalar(255, 255, 255);
int k = 400;
int width, height;

while (std::fabs(2327.0 - F) > 0.01)
{

if (F>2327.0)
{
cout <<scale <<" -0.00001" << endl;
scale = scale - 0.00001;
}
else
{
cout <<scale <<" +0.00001" << endl;
scale = scale + 0.00001;
}

Size dsize = Size(1280 * scale, 960 * scale);
Mat imgreadresize = Mat(dsize, CV_32S);
Mat img1;
for (int i = 0; i < 13; i++)
{
imgread = imread(s[i]);
resize(imgread, imgreadresize, dsize);
copyMakeBorder(imgreadresize, img1, k, k, k, k, BORDER_CONSTANT, value);
width = img1.cols / 2 - 640;
height = img1.rows / 2 - 512;
imgchange = img1(cv::Range(height, height + 1024), cv::Range(width, width + 1280));
imwrite(s1[i], imgchange);
}
F = SingleCameraCalibF();
cout << "F is " << F << endl;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: