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

三亚网站建设公司营销型网站推广方案

三亚网站建设公司,营销型网站推广方案,创建自己的免费网站,手机网站建设教程视频操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 根据 ECC 标准 78找到两幅图像之间的几何变换(warp)。 该函数根据 ECC 标准 ([78]) 估计最优变换(warpMatri…
  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

根据 ECC 标准 78找到两幅图像之间的几何变换(warp)。

该函数根据 ECC 标准 ([78]) 估计最优变换(warpMatrix),也就是说
warpMatrix = arg ⁡ max ⁡ W ECC ( templateImage ( x , y ) , inputImage ( x ′ , y ′ ) ) \texttt{warpMatrix} = \arg\max_{W} \texttt{ECC}(\texttt{templateImage}(x,y),\texttt{inputImage}(x',y')) warpMatrix=argWmaxECC(templateImage(x,y),inputImage(x,y))
此处
[ x ′ y ′ ] = W ⋅ [ x y 1 ] \begin{bmatrix} x' \\ y' \end{bmatrix} = W \cdot \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} [xy]=W xy1

(方程在单应性变换中使用齐次坐标时成立)。它返回最终的增强相关系数,即模板图像和最终变形的输入图像之间的相关系数。当给定一个 3×3 矩阵且 motionType 为 0、1 或 2 时,第三行被忽略。

与 findHomography 和 estimateRigidTransform 不同,findTransformECC 函数实现了一种基于区域的对齐方法,该方法基于强度相似性。本质上,该函数更新初始变换,该变换大致对齐图像。如果缺少这些信息,则使用单位变换(单位矩阵)作为初始化。注意,如果图像经历了强烈的位移/旋转,需要一个初始变换来大致对齐图像(例如,一个简单的欧氏变换/相似变换,允许图像显示大致相同的内容)。在第二幅图像中使用逆向变形,以使图像接近第一幅图像,即在使用 warpAffine 或 warpPerspective 时使用 WARP_INVERSE_MAP 标志。还可以参见 OpenCV 示例 image_alignment.cpp,该示例演示了该函数的使用。注意,如果算法不收敛,该函数会抛出异常。

函数原型

double cv::findTransformECC	
(InputArray 	templateImage,InputArray 	inputImage,InputOutputArray 	warpMatrix,int 	motionType,TermCriteria 	criteria,InputArray 	inputMask,int 	gaussFiltSize 
)		

参数

  • 参数 templateImage:单通道模板图像;CV_8U 或 CV_32F 数组。

  • 参数inputImage:单通道输入图像,该图像应使用最终的 warpMatrix 进行变形,以提供与 templateImage 类似的图像,类型与 templateImage 相同。

  • 参数warpMatrix:浮点型 2×3 或 3×3 映射矩阵(变形矩阵)。

  • 参数motionType:参数,指定运动类型:

    • MOTION_TRANSLATION 设置平移运动模型;warpMatrix 是 2×3 的矩阵,前 2×2 部分为单位矩阵,其余两个参数被估计。
    • MOTION_EUCLIDEAN 设置欧氏(刚性)变换作为运动模型;估计三个参数;warpMatrix 是 2×3 的矩阵。
    • MOTION_AFFINE 设置仿射运动模型(默认);估计六个参数;warpMatrix 是 2×3 的矩阵。
  • MOTION_HOMOGRAPHY 设置单应性作为运动模型;估计八个参数;warpMatrix 是 3×3 的矩阵。
    -参数criteria:参数,指定 ECC 算法的终止条件;criteria.epsilon 定义了两次迭代之间相关系数增量的阈值(负的 criteria.epsilon 使 -criteria.maxcount 成为唯一的终止条件)。默认值如上声明所示。

  • 参数inputMask:一个可选的掩码,用于指示 inputImage 的有效值。

  • 参数gaussFiltSize:一个可选值,指示高斯模糊滤波器的大小;(默认值:- 5)

代码示例


#include <opencv2/opencv.hpp>
#include <iostream>int main() {// 读取图像cv::Mat image1 = cv::imread("/media/dingxin/data/study/OpenCV/sources/images/ecc1.png", cv::IMREAD_GRAYSCALE);cv::Mat image2 = cv::imread("/media/dingxin/data/study/OpenCV/sources/images/ecc2.png", cv::IMREAD_GRAYSCALE);if (image1.empty() || image2.empty()) {std::cout << "Could not open or find the images" << std::endl;return -1;}// 定义变换矩阵cv::Mat warp_matrix = cv::Mat::eye(2, 3, CV_32F);// 设置终止条件const int MAX_ITER = 1000;const double EPSILON = 1e-5;cv::TermCriteria criteria(cv::TermCriteria::COUNT + cv::TermCriteria::EPS, MAX_ITER, EPSILON);// 计算变换矩阵double ecc = cv::findTransformECC(image1, image2, warp_matrix, cv::MOTION_AFFINE, criteria);// 输出变换矩阵std::cout << "Transformation Matrix:\n" << warp_matrix << std::endl;// 使用计算出的变换矩阵对第二张图像进行变换cv::Mat aligned_image;cv::warpAffine(image2, aligned_image, warp_matrix, image1.size());// 显示原图和对齐后的图像cv::imshow("Original Image", image1);cv::imshow("Aligned Image", aligned_image);cv::imshow("Target Image", image2);cv::waitKey(0);return 0;
}

运行结果

原始图:
在这里插入图片描述
目标图

在这里插入图片描述
对齐的图
在这里插入图片描述

http://www.hkea.cn/news/505572/

相关文章:

  • 怎么做自己网站推广网络广告
  • 化州网站建设促销方法100种
  • 长沙专业网站设计平台新闻最新消息10条
  • 惠州网站建设制作宣传推广方案
  • 宁波网站推广外包服务长岭网站优化公司
  • 哈尔滨市哪里做淘宝网站seo课程心得体会
  • 做网站建设公司企业一个企业该如何进行网络营销
  • 移动端h5网站开发服务企业seo推广
  • 管理公司网站建设引擎搜索优化
  • 上市公司专利查询网站百度广告投放价格
  • html5电商网页制作网站怎么seo关键词排名优化推广
  • 大同网站建设黄冈网站推广优化找哪家
  • 昌邑网站建设站长之家网站排名
  • 建设企业网站的需求分析免费域名
  • 重庆欧勒精细有限公司网站策划书百度竞价推广开户
  • 怎么做一键添加信任网站ios aso优化工具
  • ps做网站的分辨率多少钱苹果cms永久免费建站程序
  • 网站推广积分常用于网站推广的营销手段是
  • wordpress时间云储存沈阳网站制作优化推广
  • h5响应式网站建设竞价托管哪家效果好
  • 企业解决方案参考网站品牌软文营销案例
  • 做淘客要有好的网站上海百度seo
  • 网站建设 seojsc宁德seo推广
  • 建立网站的作用信息流优化师工作总结
  • 如何建设物流网站近期时事新闻
  • 网站开发大赛发言稿网址搜索
  • 论坛类型的网站怎么做拉新推广平台有哪些
  • pc官方网站视频专用客户端app
  • 成都哪家做网站建设比较好搜索关键词排名查询
  • 无锡网站优化推广广州网站推广运营