本文主要是介绍OpenCV编程-图像边界拓展copyMakeBorder,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
//打开原始图像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.0667double 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;}
这篇关于OpenCV编程-图像边界拓展copyMakeBorder的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!