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

关于网站建设的调查报告建网站 考虑

关于网站建设的调查报告,建网站 考虑,ueditor wordpress 插件,中山网站制作公司Kotlin Bytedeco OpenCV 图像图像54 透视变换 图像矫正 1 添加依赖2 测试代码3 测试结果 在OpenCV中#xff0c;仿射变换#xff08;Affine Transformation#xff09;和透视变换#xff08;Perspective Transformation#xff09;是两种常用的图像几何变换方法。 变换方… Kotlin Bytedeco OpenCV 图像图像54 透视变换 图像矫正 1 添加依赖2 测试代码3 测试结果 在OpenCV中仿射变换Affine Transformation和透视变换Perspective Transformation是两种常用的图像几何变换方法。 变换方法适用场景仿射变换简单的几何变换平移、旋转、缩放、剪切。透视变换改变图像视角和模拟3D投影效果。 变换方法解释特点应用场景实现方法仿射变换仿射变换是一种线性变换它保持了图像中直线的直线性和平行线的平行性。常见的仿射变换包括平移、旋转、缩放、剪切等。输入空间和输出空间之间存在线性关系。直线和平行性在变换后保持不变但角度和长度可能发生改变。图像平移、旋转或缩放。图像对齐如在模板匹配中的坐标对齐。简单的几何变形如剪切变换。准备变换矩阵2x3。使用 OpenCV 的 cv2.warpAffine() 方法进行变换。透视变换透视变换是一种非线性变换用于将图像从一个平面映射到另一个平面。它允许改变图像的视角从而获得三维的透视效果。输入空间和输出空间之间是非线性的。直线保持直线但平行线不再平行。需要 4 对点来定义变换关系。图像校正如将拍摄的书本照片调整为平面图。视角转换如模拟3D效果或鸟瞰视图。投影变换如在增强现实中的投影映射。定义输入和输出平面上的 4 个对应点。使用 cv2.getPerspectiveTransform() 获取 3x3 的透视变换矩阵。使用 cv2.warpPerspective() 方法进行变换。 1 添加依赖 ?xml version1.0 encodingUTF-8? project xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlnshttp://maven.apache.org/POM/4.0.0xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.xu/groupIdartifactIdKotlinOpenCV/artifactIdversion1.0/versionpropertieskotlin.version2.0.0/kotlin.versionproject.build.sourceEncodingUTF-8/project.build.sourceEncodingkotlin.code.styleofficial/kotlin.code.stylekotlin.compiler.jvmTarget1.8/kotlin.compiler.jvmTarget/propertiesrepositoriesrepositoryidmavenCentral/idurlhttps://repo1.maven.org/maven2//url/repository/repositoriesdependenciesdependencygroupIdcn.hutool/groupIdartifactIdhutool-all/artifactIdversion5.8.29/version/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-compress/artifactIdversion1.27.0/version/dependencydependencygroupIdorg.tukaani/groupIdartifactIdxz/artifactIdversion1.10/version/dependencydependencygroupIdorg.jetbrains.kotlinx/groupIdartifactIdkotlinx-coroutines-core/artifactIdversion1.9.0-RC/version/dependency!-- dependency--!-- groupIdorg.opencv/groupId--!-- artifactIdopencv/artifactId--!-- version4100/version--!-- scopesystem/scope--!-- systemPath${project.basedir}/lib/opencv/opencv-4100.jar/systemPath--!-- /dependency--dependencygroupIdorg.bytedeco/groupIdartifactIdopencv-platform/artifactIdversion4.10.0-1.5.11/version/dependency!-- dependency--!-- groupIdorg.bytedeco/groupId--!-- artifactIdffmpeg-platform/artifactId--!-- version6.1.1-1.5.10/version--!-- /dependency--dependencygroupIdorg.jetbrains.kotlin/groupIdartifactIdkotlin-test-junit5/artifactIdversion2.0.0/versionscopetest/scope/dependencydependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter/artifactIdversion5.10.0/versionscopetest/scope/dependencydependencygroupIdorg.jetbrains.kotlin/groupIdartifactIdkotlin-stdlib/artifactIdversion2.0.0/version/dependency/dependenciesbuildsourceDirectorysrc/main/kotlin/sourceDirectorytestSourceDirectorysrc/test/kotlin/testSourceDirectorypluginsplugingroupIdorg.jetbrains.kotlin/groupIdartifactIdkotlin-maven-plugin/artifactIdversion2.0.0/versionexecutionsexecutionidcompile/idphasecompile/phasegoalsgoalcompile/goal/goals/executionexecutionidtest-compile/idphasetest-compile/phasegoalsgoaltest-compile/goal/goals/execution/executions/pluginpluginartifactIdmaven-surefire-plugin/artifactIdversion2.22.2/version/pluginpluginartifactIdmaven-failsafe-plugin/artifactIdversion2.22.2/version/pluginplugingroupIdorg.codehaus.mojo/groupIdartifactIdexec-maven-plugin/artifactIdversion1.6.0/versionconfigurationmainClassMainKt/mainClass/configuration/plugin/plugins/build/project2 测试代码 package com.xu.com.xu.transimport org.bytedeco.javacpp.Loader import org.bytedeco.javacpp.Pointer import org.bytedeco.opencv.global.opencv_core import org.bytedeco.opencv.global.opencv_highgui import org.bytedeco.opencv.global.opencv_imgcodecs import org.bytedeco.opencv.global.opencv_imgproc import org.bytedeco.opencv.opencv_core.Mat import org.bytedeco.opencv.opencv_core.Point import org.bytedeco.opencv.opencv_core.Point2f import org.bytedeco.opencv.opencv_core.Scalar import org.bytedeco.opencv.opencv_highgui.MouseCallbackobject Restore {init {Loader.load(opencv_core::class.java)}JvmStaticfun main(args: ArrayString) {restore(1)}/*** 透视变换 图像修改** since 2025年1月20日12点33分*/private fun restore(type: Int) {// 读取图像val src opencv_imgcodecs.imread(C:\\Users\\xuyq\\Desktop\\11.png)if (src null || src.empty()) {return}// 创建源点矩阵4个点val org Mat(1, 4, opencv_core.CV_32FC2)org.ptr(0, 0).putPointer(Point2f(0f, 0f))org.ptr(0, 1).putPointer(Point2f(src.cols().toFloat(), 0f))org.ptr(0, 2).putPointer(Point2f(src.cols().toFloat(), src.rows().toFloat()))org.ptr(0, 3).putPointer(Point2f(0f, src.rows().toFloat()))// 创建目标点矩阵4个点val dst Mat(1, 4, opencv_core.CV_32FC2)if (1 type) {val target click(src)for (i in target.indices) {dst.ptr(0, i).putPointer(target[i])}} else {dst.ptr(0, 0).putPointer(Point2f(21f, 20f))dst.ptr(0, 1).putPointer(Point2f(953f, 74f))dst.ptr(0, 2).putPointer(Point2f(847f, 574f))dst.ptr(0, 3).putPointer(Point2f(109f, 643f))}// 获取透视变换矩阵val matrix opencv_imgproc.getPerspectiveTransform(dst, org)// 应用透视变换val images Mat()opencv_imgproc.warpPerspective(src, images, matrix, src.size())// 显示结果opencv_highgui.imshow(RESTORE, images)opencv_highgui.waitKey(0)}private fun click(image: Mat): ListPoint2f {// 创建画布(白色背景)val window Click// 创建窗口opencv_highgui.namedWindow(window, opencv_highgui.WINDOW_AUTOSIZE)val points listOfPoint2f().toMutableList()// 创建鼠标回调对象val callback object : MouseCallback() {override fun call(event: Int, x: Int, y: Int, flags: Int, params: Pointer?) {when (event) {opencv_highgui.EVENT_LBUTTONDOWN - {println(点击点: ($x, $y))points.add(Point2f(x.toFloat(), y.toFloat()))// 在原图上绘制点opencv_imgproc.circle(image, Point(x, y), 5,Scalar(0.0, 0.0, 255.0, 0.0), -1, opencv_imgproc.LINE_AA, 0)opencv_highgui.imshow(window, image)}}}}// 设置鼠标回调opencv_highgui.setMouseCallback(window, callback, null)// 主循环while (true) {opencv_highgui.imshow(window, image)if (opencv_highgui.waitKey(1).toChar() 27.toChar() || points.size 4) {opencv_highgui.destroyWindow(window)break}}return points}}3 测试结果
http://www.hkea.cn/news/14313185/

相关文章:

  • 做网站推广怎么做杭州市招投标交易中心
  • intitlt:山西大同网站建设wordpress碎语插件
  • 杭州酒店网站建设方案wordpress 新网站 代码
  • 济南网站建设山东聚搜网见效快wordpress上传附件类型
  • 物流网站建设推广asp.net网站开发菜鸟
  • 夺宝网站制作金坛网站建设
  • 布吉网站建设方案网站建设公司的正反
  • 无后台网站的维护wordpress 静态规则
  • 建筑网站建设方案图片外链生成器
  • 优秀国外设计网站app物流网站平台建设
  • 手机网站百度关键词排名查询襄阳谷城网站建设
  • 网站轮播广告动画怎么做网络维护公司创业计划书
  • 网站背景图片怎么做一个网站需要几个人
  • 查 网站接入服务提供者名称免费一级域名网站
  • 做旅游网站选什么空间做推广什么网站便宜
  • 购买网站模板怎么用广告设计是学什么的
  • 承德网站建设咨询wordpress阿里
  • 中国工程建设标准网站移动互联网站开发与维护
  • 定制开发网站网站开发经理具备什么知识
  • 网站设计需求文档范例深圳做网站好的网站建设公司
  • 小型网站设计及建设wordpress浮动广告
  • 泉州市住房和城乡建设部网站工业设计专业怎么样
  • 做网站时最新菜品的背景图展馆装修施工
  • 加强财政门户网站建设工作软件定制开发公司发展前景
  • 佛山网站建设格式有哪些国外手机网站欣赏
  • 企业网站规划书网站网页设计前言
  • 有关网站建设的参考书个人公司网站建设答辩
  • 怎么给网站创建二维码营销型网站建设计划书
  • 小程序无代码开发平台北京网站seo费用
  • 关于网站建设项目创业计划书环艺做网站