当前位置: 首页 > news >正文

东莞物流网站建设上海室内设计公司排名前十强

东莞物流网站建设,上海室内设计公司排名前十强,动漫视频网站模板,wordpress保存的字体大小仿射变换cv::warpAffine cv::warpAffine 是OpenCV中用于执行仿射变换的函数。仿射变换是一种线性变换#xff0c;可用于执行平移、旋转、缩放和剪切等操作。下面是 cv::warpAffine 函数的基本用法#xff1a; cv::warpAffine(src, dst, M, dsize, flags, borderMode, borde…仿射变换cv::warpAffine cv::warpAffine 是OpenCV中用于执行仿射变换的函数。仿射变换是一种线性变换可用于执行平移、旋转、缩放和剪切等操作。下面是 cv::warpAffine 函数的基本用法 cv::warpAffine(src, dst, M, dsize, flags, borderMode, borderValue);src: 输入图像。dst: 输出图像用于存储仿射变换后的结果。M: 2x3仿射变换矩阵包含变换的参数。dsize: 输出图像的尺寸。flags: 插值方法通常使用 cv::INTER_LINEAR 进行双线性插值。cv::INTER_NEAREST 最近邻插值cv::INTER_AREA 区域插值cv::INTER_CUBIC 三次样条插值cv::INTER_LANCZOS4 Lanczos插值cv::CV_WARP_FILL_OUTLIERS 填充所有输出图像的象素。如果部分象素落在输入图像的边界 外那么它们的值设定为 fillvalcv::CV_WARP_INVERSE_MAP 表示 M为输出图像到输入图像的反变换。因此可以直接用来做 象素插值。否则warpAffine函数从M矩阵得到反变换 borderMode: 边界模式可选参数定义当像素越出图像边界时的处理方式通常使用 cv::BORDER_CONSTANT 或 cv::BORDER_REPLICATE。borderValue: 当 borderMode 为 cv::BORDER_CONSTANT 时使用用于指定图像边界外的像素值。 通过提供仿射变换矩阵 M您可以指定图像的变换方式包括平移、旋转、缩放和剪切等。然后cv::warpAffine 函数会根据给定的变换参数将输入图像进行变换输出结果保存在 dst 中。 以下是一个简单的示例演示如何使用 cv::warpAffine 进行图像的平移操作 #include opencv2/opencv.hppint main() {cv::Mat image cv::imread(1.jpg, cv::IMREAD_COLOR);if (image.empty()) {std::cerr 无法加载图像 std::endl;return -1;}// 定义仿射变换矩阵平移操作cv::Mat warpMatrix (cv::Mat_double(2, 3) 1, 0, 50, 0, 1, 30);cv::Mat result;// 应用仿射变换cv::warpAffine(image, result, warpMatrix, image.size());cv::imshow(原始图像, image);cv::imshow(仿射变换后的图像, result);cv::waitKey(0);return 0; }在这个示例中我们定义了一个仿射变换矩阵 warpMatrix该矩阵包含平移操作的参数。然后我们使用 cv::warpAffine 函数将变换应用于原始图像生成了变换后的结果。您可以根据需要修改 warpMatrix 中的值以实现不同的仿射变换效果。 二维旋转变换矩阵的函数cv::getRotationMatrix2D cv::getRotationMatrix2D 是OpenCV中用于获取二维旋转变换矩阵的函数。这个函数用于构造一个仿射变换矩阵该矩阵用于执行二维图像的旋转操作。下面是 cv::getRotationMatrix2D 函数的基本用法 cv::Mat cv::getRotationMatrix2D(cv::Point2f center, double angle, double scale);center: 旋转中心的坐标通常是旋转图像的中心点。angle: 旋转的角度以度为单位。scale: 缩放因子通常设置为1.0。 函数返回一个2x3的仿射变换矩阵该矩阵包含了旋转和缩放的参数。 以下是一个示例演示如何使用 cv::getRotationMatrix2D 函数构造旋转变换矩阵然后应用该变换矩阵来旋转图像 #include opencv2/opencv.hppint main() {cv::Mat image cv::imread(1.jpg, cv::IMREAD_COLOR);if (image.empty()) {std::cerr 无法加载图像 std::endl;return -1;}// 旋转中心坐标cv::Point2f center(image.cols / 2.0, image.rows / 2.0);// 旋转角度以度为单位double angle 30;// 缩放因子double scale 1.0;// 获取旋转变换矩阵cv::Mat rotationMatrix cv::getRotationMatrix2D(center, angle, scale);cv::Mat result;// 应用仿射变换cv::warpAffine(image, result, rotationMatrix, image.size());cv::imshow(原始图像, image);cv::imshow(旋转后的图像, result);cv::waitKey(0);return 0; }在这个示例中我们使用 cv::getRotationMatrix2D 函数获取旋转变换矩阵然后将该变换矩阵应用于原始图像以实现旋转效果。您可以根据需要调整 center、angle 和 scale 参数来执行不同的旋转和缩放操作。 综合案例 #include opencv2/opencv.hpp #include iostream #include opencv2/highgui/highgui.hpp #include opencv2/imgproc/imgproc.hppusing namespace std; using namespace cv; #include iostream #include fstream using namespace cv; //包含cv命名空间 #include opencv2/core/core.hpp #define WINDOW_NAME1 【原始图窗口】 //为窗口标题定义的宏 #define WINDOW_NAME2 【经过 Warp后的图像】 //为窗口标题定义的宏 #define WINDOW_NAME3 【经过 Warp和 Rotate后的图像】 //为窗口标题定 static void ShowHelpText(); /// 【main()函数】-------------------------- - // 描述 控制台应用程序的入口函数 我们的程序从这里开始执行 int main() {//【0】改变 console字体颜色system(color 1A);//【0】显示欢迎和帮助文字ShowHelpText();//【1】参数准备//定义两组点 代表两个三角形Point2f srcTriangle[3];Point2f dstTriangle[3];//定义一些 Mat变量Mat rotMat(2, 3, CV_32FC1);Mat warpMat(2, 3, CV_32FC1);Mat srcImage, dstImage_warp, dstImage_warp_rotate;//【2】加载源图像并作一些初始化srcImage imread(1.jpg, 1);if (!srcImage.data) { printf(读取图片错误, 请确定目录下是否有imread函数指定的图片存在~! \n); return false; }// 设置目标图像的大小和类型与源图像一致dstImage_warp Mat::zeros(srcImage.rows, srcImage.cols, srcImage.type());//【3】设置源图像和目标图像上的三组点以计算仿射变换srcTriangle[0] Point2f(0, 0);srcTriangle[1] Point2f(static_castfloat(srcImage.cols - 1), 0);srcTriangle[2] Point2f(0, static_castfloat(srcImage.rows - 1));dstTriangle[0] Point2f(static_castfloat(srcImage.cols * 0.0), static_castfloat(srcImage.rows * 0.33));dstTriangle[1] Point2f(static_castfloat(srcImage.cols * 0.65), static_castfloat(srcImage.rows * 0.35));dstTriangle[2] Point2f(static_castfloat(srcImage.cols * 0.15), static_castfloat(srcImage.rows * 0.6));//【4】求得仿射变换warpMat getAffineTransform(srcTriangle, dstTriangle);//【5】对源图像应用刚刚求得的仿射变换warpAffine(srcImage, dstImage_warp, warpMat, dstImage_warp.size());//【6】对图像进行缩放后再旋转// 计算绕图像中点顺时针旋转50度缩放因子为0.6的旋转矩阵Point center Point(dstImage_warp.cols / 2, dstImage_warp.rows / 2);double angle -30.0;double scale 0.8;// 通过上面的旋转细节信息求得旋转矩阵rotMat getRotationMatrix2D(center, angle, scale);// 旋转已缩放后的图像warpAffine(dstImage_warp, dstImage_warp_rotate, rotMat, dstImage_warp.size());//【7】显示结果imshow(WINDOW_NAME1, srcImage);imshow(WINDOW_NAME2, dstImage_warp);imshow(WINDOW_NAME3, dstImage_warp_rotate);// 等待用户按任意按键退出程序waitKey(0);return 0; } //一 【ShowHelpText()函数】---------------------- - // 描述 输出一些帮助信息 static void ShowHelpText() {//输出一些帮助信息printf(\n\n\n\t欢迎来到【仿射变换】示例程序~ \n\n);//printf(\t当前使用的OpenCV版本为 OpenCV CV_VERSION); }
http://www.hkea.cn/news/14502836/

相关文章:

  • wordpress同步微博评论百度seo入驻
  • 提高网站访问速度的建设方案仿70网站分类目录源码
  • 手机网站 建设广告设计从入门到精通
  • 网站美工要求管理网站 开发
  • 家纺行业英文网站模板电商网站设计公司皆选亿企邦
  • 如何做公司自己的网站首页域名转发网站
  • 岳阳网站建设公司网站开发石家庄
  • 梅林多丽工业区做网站枣阳网站建设_枣阳山水数码
  • 滨州改版网站建设服务wordpress 函数api文件路径
  • 江门网站推广公司wordpress 摄影工作室主题
  • 我做网站编辑写文章很慢怎么办网站如何排版
  • 制作一个网站步骤排版asp网站水印支除
  • 青岛网站建设比较好地推一手项目平台
  • 企业为什么要建站点呢怎么制作网页版简历
  • 门户网站建设服务收费临沂定制网站建设公司
  • 北京网站建设公司有哪些网站下拉菜单html做多大
  • 江西商城网站建设公司360网站收录
  • 网站建设支付电子商务网站建设的简要任务执行书
  • 宁波那家公司做网站好正规网站建设服务
  • 创建一个新的公司网站广州重点场所
  • 网站制作与建设书籍asp网站加速
  • 商城网站源码WordPress文章上传图片
  • vuejs做视频网站设计django网站开发
  • 哪些网站可以做推广wordpress短信验证插件
  • 网站空间 php美橙网站建设教程
  • 怎么做游戏平台网站太原网站搭建推广
  • c 网站模板如何组织公司做网站
  • 做荣誉证书的网站mip网站有什么好处
  • 网站推广优化平台民治做网站公司
  • 常州中环互联网网站建设龙岩艺尚网络科技有限公司