自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 opencv_contrib安装笔记_opencv contrib

找到OPENCV_EXTRA_MODULES_PATH后在value中填入编译opencv_contrib解压目录中的modules路径(注意此处路径的反斜杠\要改成正斜杠/,反斜杠\有转义字符的意思)。近来由于需要用到 opencv 的SIFT特征,但是SIFT等功能已经移入了opencv_contrib 中,所以需要重新编译opencv和opencv_contrib。在弹出的窗口里面选择的 debug 和release的ALL_BUILD和INATALL,然后点击“生成”。

2025-01-18 10:49:41 972

原创 opencv-相机标定步骤、评估标定误差以及标定之后图像坐标到世界坐标的转换_opencv特征值转换成坐标值

可是,相机标定完之后,我们想要的是,知道了图像坐标,想要得到它的世界坐标,或者我们已知图像上两个点之间的像素距离,现在我们想知道两个点之间的实际距离。楼主在网上搜了很多资源,问了很多人,都没有相关的代码,可以得到这样的结论:opencv没有提供现成的函数,满足从图像坐标到世界坐标的转换。所以,我们最想要的这一步,是需要自己写的。四、得到了相机内参和畸变系数,这是标定完后相机的属性,还会得到外参,外参代表着每张图片所在的平面;六、我们最想要的,根据图像坐标到世界坐标的转换,本质上就是矩阵的运算,需要自己写;

2025-01-18 10:47:38 813

原创 【蓝桥Java每日一练】————替换所有的问号

可以防止数组越界,当我遍历的下标i存在于前一组时,我得保证它和后一位不相等,当我们的i存在于后一组时,我们得保证它和前一位不相等。首先我们要明白题目的意思,它给的字符串本身是没有重复字符的,但是包含’?当然可以,但是格局小了,我们主要保证和相邻的两个字符不同,所以最多我们用三个字符就可以完成这个任务。//i>0说明i在第二组(也就是不为头结点),如果这时arr[i-1]==ch,说明ch不符合。//当循环能走到这,说明ch和此时问号相邻的字符都不等,可以把问号替换为ch。,不存在连续重复的字符。

2025-01-14 20:15:43 826

原创 【自学Flutter】32 交错动画的使用

class MyApp extends StatefulWidget {@override_MyAppState createState() => _MyAppState();}class _MyAppState extends State with TickerProviderStateMixin {AnimationController controller;@overridevoid initState() {super.initState();controller = AnimationContro

2025-01-14 20:12:02 921

原创 【自动化测试教程】Java+Selenium自动化测试环境搭建

​Selenium IDE 可以把 HTML 的脚本转为 C#,JAVA 等等其他语言的脚本,为我们日后写 WebDriver 的测试案例提供了极大的方便。打开 firefox 浏览器,附加组件搜索selenium IDE,在弹出的软件安装页面中点击立即安装,安装后重新启动浏览器,插件将起作用。如果不使用默认安装,以后使用代码中是要加料的哦~,这里我们以普通用户习惯,不。本文开始时提到了,Selenium IDE 还有一个重要的功能就是把脚本的转。安装在系统盘中,稍后将对需要修改配置的地方做说明。

2025-01-14 20:08:20 421

原创 MySQL基础学习总结(四)_mysql 一个老师有多个学生,一个学生有多个老师

索引是在数据库表的字段上添加的,是为了提高查询效率存在的一种机制。一张表的一个字段可以添加一个索引,当然,多个字段联合起来也可以添加索引。索引相当于一本书的目录,是为了缩小扫描范围而存在的一种机制。MySQL在查询方面主要就是两种方式: 第一种方式:全表扫描 第二种方式:根据索引检索。在mysql数据库当中索引也是需要排序的,并且这个索引的排序和TreeSet 数据结构相同。TreeSet(TreeMap)底层是一个自平衡的二叉树!在mysql 当中索引是一个B-Tree数据结构。

2025-01-12 02:46:03 464

原创 MySQL事务-知识点总结

一个最小的执行单元;通常一个事务对应一个完整的业务(例如银行的转账业务,只有转出者金额的减少对应到接收者金额增多这样一个不会从中间断开的一个动态平衡的过程,也就是一个最基本的最小工作单元)。事务(Transaction)是将⼀组操作封装成⼀个执行单元(封装到⼀起),这⼀个执行单元要么⼀起执行成功,要么⼀起失败,不会出现执行“⼀半”的情况。这个记录是在内存中完成的;假如在执⾏以上第⼀句 SQL 时,出现网络错误,或是数据库挂掉了,张三的账户会减少 500,但是 李四的账户上就没有了增加的⾦额。

2025-01-12 02:42:22 494

原创 MySQL“被动”性能优化汇总

通常情况下,我们使用取模的方式来进行表的拆分,比如,一张有 400W 的用户表 users,为提高其查询效率我们把其分成 4 张表 users1,users2,users3,users4,然后通过用户 ID 取模的方法,同时查询、更新、删除也是通过取模的方法来操作。一般情况下对数据库而言都是“读多写少”,换言之,数据库的压力多数是因为大量的读取数据的操作造成的,我们可以采用数据库集群的方案,使用一个库作为主库,负责写入数据;回表查询:普通索引查询到主键索引后,回到主键索引树搜索的过程,我们称为回表查询。

2025-01-12 02:38:41 1347

原创 Android开发的艺术:插件化框架Virtual APK实现原理解析

如果我们启动的是插件APK里的Activity,这个方法的Catch语句块是一定会被执行的,因为入参className已经被替换为插桩Activity的,但是我们只是在宿主App的AndroidManifest.xml中定义了这些Actiivty,并没有真正的实现。如果启动的Activity是插件APK中的,则根据该Actiivty的启动模式选择合适的插桩Activity, AMS在启动阶段对插桩Activity处理后,在创建Activity实例阶段,实际创建插件APK中要启动的Activity。

2025-01-10 11:33:08 879

原创 Android开发已过时,转行风险大,Android原生开发出路在哪?

同样是盖房子的例子,有的人当了工程师,有的人是规划师,有的人是架构师,失之毫厘,差之千里。如果把编程比作盖房子,那有的人是搬砖头的,有的人是搅水泥的,有的人是做木工的。虽然都是体力活,但是木工可能比水泥匠优雅一些,水泥匠可能比搬砖工轻松一些(这里全是主观比喻,你懂就行),盖的房子越大,工种分的越细,虽然都是盖房子,但不是所有的工种都适合你的,你只有充分了解才能判断出自己到底擅长什么适合什么。每天新的技术层出不穷,我三年前会的技术,现在已经完全被淘汰了,是完全,都没人再用了。Android进阶之路。

2025-01-10 11:29:27 446

原创 Android开发3年,靠着这份PDF面试资料,成功跳槽字节跳动

谈一谈Fragment的生命周期?与Activity生命周期的不同?谈谈Activity和Fragment的区别?Fragment中add与replace的区别(Fragment重叠) getFragmentManager、getSupportFragmentManager 、getChildFragmentManager之间的区别?FragmentPagerAdapter与FragmentStatePagerAdapter的区别与使用场景。

2025-01-10 11:25:46 565

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除