- 博客(34)
- 资源 (1)
- 收藏
- 关注
原创 红黑树代码+原理逐行解释
每个结点包含指向左右孩子和父亲的指针。红黑树定义的颜色值。节点储存的值。intkey;//存储的结点值Nodeleft,right;//左右孩子结点Nodeparent;//父节点便于回溯booleancolor;//红黑树颜色值publicNode(booleancolor){super();super();}}...
2022-07-28 17:19:30 484
原创 Shape-Preserving Half-Projective Warps for Image Stitching(SPHP)
通过特征匹配估计一个重叠区域的homography,并平滑过度到非重叠区域的相似变换,使得重叠区域有一个感官自然的视角。投影变换(单应性矩阵)表示像素点 在齐次坐标系下的线性变换关系:[x′y′1]∼[h^1h^2h^3h^4h^5h^6h^7h^81][xy1],\left[\begin{array}{l}x^{\prime} \\y^{\prime} \\1\end{array}\right] \sim\left[\begin{array}{ccc}\hat{h}_{1} & \hat{
2022-06-12 18:58:50 606
原创 LPC图像拼接-代码-RMSE问题
2021年cvpr-Leveraging Line-point Consistence to Preserve Structures for Wide Parallax Image Stitching(LCP)这篇论文作者给的评价指标代码。作者在求出特征点之间的范数后没有平方,得到的实验数据下图所示:LCP的APAP的实验指标是直接从APAP论文里面抄的,我感觉apap的论文实验指标和他的论文指标不一样。不用多说apap这个效果很好SPW房屋上有很明显重影。LCP在近景上的瓦片上有很明显错位。从
2022-06-10 18:02:43 833 17
原创 APAP多重采样RANSAC
参考文献:Accelerated Hypothesis Generation for Multi-structure Robust Fitting假设Input:{xi}i=1N\{x_i\}_{i=1}^N{xi}i=1N代表输入的N组数据,由N组数据随机采样生成了M个模型θ1,θ2,...θM{\theta_1,\theta_2,...\theta_M}θ1,θ2,...θM,对于每一个个输入数据xix_ixi,我们计算模型的残差得到该模型的分数r(i)=[r1(i),r2(i)...rM
2022-06-01 15:32:56 283
原创 根据姿态进行拼接
对于地面上 某一个顶点,建立世界坐标系,则该点P(Xw,Yw,Zw)P(X_w,Y_w,Z_w)P(Xw,Yw,Zw)。该点P通过相机在U1,U2U_1,U_2U1,U2位置捕获,在I1,I2I_1,I_2I1,I2上对应坐标分别表示为p1(u1,v1,1)和p2(u2,v2,1)p_1(u_1,v_1,1)和p_2(u_2,v_2,1)p1(u1,v1,1)和p2(u2,v2,1)。单应性矩阵H可以通过下式表示:其中C表示一个非零常数项。以U1U_1U1作为世界坐标系的原点
2022-05-23 11:42:35 239
原创 三维坐标系旋转矩阵推导
注意坐标系旋转不同于坐标点旋转坐标系旋转角度θ则等同于将目标点围绕坐标原点反方向旋转同样的角度θ1.三维坐标系推导过程假设三维坐标系是一个右手坐标系。如下图可以通过右手定则确定是右手坐标系。确定轴的旋转的正方向,用右手的大拇指指向轴的正方向,弯曲手指手指。手指方向即是轴的正旋转方向。2.坐标轴绕z轴旋转坐标轴绕z轴正向旋转相当于op向量在xoy平面上顺时针旋转:则可以推导出其中M’坐标(x’,y’,z’);M坐标(x,y,z)3.绕X轴旋转同理绕X轴正向旋转相当于如下图的向量.
2022-05-21 18:18:14 5252
原创 二维,三维坐标旋转,左右手坐标系
1.向量旋转矩阵和坐标旋转矩阵区别坐标旋转:坐标旋转对应的是点在另一个坐标系的位置,设点A在xoy中为(x,y),在坐标系x’oy’下坐标是(x’,y’),旋转角度由x向y,逆时针旋转。则他们关系是:向量旋转:设A向量为(x,y),A’向量为(x’,y’),则他们关系是:总结:向量旋转和坐标旋转不一样,且互逆。2. 三维坐标旋转如下图所示三维坐标拆开,每两个维度分析:[x′y′z′]=[cos(θ)sin(θ)0−sin(θ)cos(θ)0001][xyz]\begin{bm
2022-05-20 19:04:12 2098
原创 word2016 安装 mathtype7
一、找到mathtype7的安装目录复制文件在mathtype7安装目录下找到Office Support,根据word2016安装32还是64位版本,进入下面目录。然后,复制下面的两个文件。同理在MathType7安装目录下,MathPage中找到自己word2016对应版本的文件夹,复制MathPage.wll 文件。二、word2016中添加信任文件夹word左下角点击选项点击信任中心点击信任中心设置点击受信任位置,让后点击添加新位置点击浏览,找到of
2022-03-09 11:14:19 1100
原创 照片属性解释
照片个别参数记录分辨率4000 x 3000 :图像包含的像素点数 ,opencv 读取的图片数组大小。同理下面宽度和高度就是图片宽高包含的像素点数,图像平面的度量单位。水平和垂直分辨率 72 dpi:每英寸包含的像素点数,这个由拍摄相机决定。位深度 24:每个颜色通道占8位的无符号整型,取值0-255,三个RGB通道则占24位。...
2021-12-12 16:23:48 4941
原创 透视变换原理、相机成像、灭点
相机成像设世界坐标为(Xw,Yw,Zw)(X_w,Y_w,Z_w)(Xw,Yw,Zw),相机坐标为(Xc,Yc,Zc)(X_c,Y_c,Z_c)(Xc,Yc,Zc),则世界坐标系和相机坐标系需要一个矩阵变换R以及一个位移矩阵T,公式如下:[XcYcZc1]=[RT01][XwYwZw1]\begin{bmatrix}X_c\\Y_c\\Z_c\\1\end{bmatrix} = \begin{bmatrix}R & T\\0 & 1\end{bmatrix}\b
2021-12-10 20:15:39 2931
原创 python矩阵乘法区别(*,dot,matmul, multiply, inner, cross)
# a = np.array([[0, 1, 2], [1, 2, 3], [3, 4, 5]]) b = np.array([[1, 1, 2], [2, 2, 1], [1, 1, 2]]) print(np.cross(a[0], b[0])) # 叉乘 [0 , 2, -1] print(np.inner(a[0], b[0])) # 5 print(np.multiply(a, b)) # 对应元素相乘 相同维度下等于 a * b print(a
2021-12-09 19:45:32 478
原创 python图像类型 & imshow & imwrite
图像类型:8-bit 无符号整型16-bit 无符号整型32-bit 无符号整型32-bit 浮点型64-bit 浮点型imshow:如果是8-bit无符号直接显示,16-bit的无符号或32-bit整型(不是无符号)会先除256,即从[0-255*256] / 256 变成[0-255]。32-bit和64-bit浮点型会乘以255,从[0, 1]拉伸到[0-255]imwrite8-bit无符号整型的图像会保存BGR图像,比如jpg格式16-bit无符号保存成PNG,JPEG,T.
2021-12-09 12:43:37 598
原创 图像多分辨率融合--数据类型
错误图我用python复现C++的多分辨率融合时,因为数据类型使用不当,最终产生融合失败的情况。如下图,图像融合后,像素亮度很高,产生很白的情况。分析首先,构建完两幅镶嵌图像的拉普拉斯金子塔,如左图高斯金子塔图像,可以看出纹理信息,没有错。对两个普拉斯金子塔中的图像分别进行融合,结果图如下,问题来了,融合后的图像从上图的浅色纹理变成了像素值很高的图像,融合出错了。试了很多方法,最终发现opencv读取的图像是unit8,即无符号整型,在融合前,只对图像进行了下采样,上采样,相减操作,并没涉
2021-12-09 11:50:51 3101 1
原创 C++中convertTo对应的python代码
C++类型转化代码Mat_<Vec3f> dst; // dst 需要是3通道浮点型src.convertTo(dst, CV_32F, 1.0/255.0);对应python代码:# python 没有 convertTosrc.astype(np.float32) # 类型dst = src/255.0 # 缩放
2021-12-09 10:17:59 1361
原创 多分辨率融合
class LaplacianBlending {private: Mat_<Vec3f> left; // 左图 Mat_<Vec3f> right; // 右图 Mat_<float> blendMask; // 融合线掩码 vector<Mat_<Vec3f> > leftLapPyr,rightLapPyr,resultLapPyr; //拉普拉斯金字塔 Mat leftHighestLevel, rightHighestLe
2021-12-08 12:53:32 1153
原创 cv2.perspectiveTransform()透视变换原理
opencv中透视变换k[x′y′1]=H[xy1]k\begin{bmatrix}x'\\y'\\1 \end{bmatrix}=H\begin{bmatrix}x\\y\\1 \end{bmatrix}\\k⎣⎡x′y′1⎦⎤=H⎣⎡xy1⎦⎤corners = np.array([[281, 238], [325, 297], [283, 330],[248, 325]], dtype=np.float32).reshape(-1, 1, 2)H = np.array([1,
2021-12-01 15:20:50 11945
原创 带有返回值和没有返回值的递归区别
1、当使用带有返回值得递归时,适用于返回值能代表确切含义的情况。//求二叉树高度,返回左右子树高度。int getDepth(TreeNode *root){ if(root) return 0; // 树为空返回0 int left = getDepth(root->left); int right = getDepth(root->right); return 1 + max(left, right);}int getDepth(TreeNode *root){ if(ro
2021-11-26 17:18:29 2135
原创 Script file ‘D:\Anaconda3\envs\opencvEnv\Scripts\pip-script.py’ is not present 解决方法
1、需要安装一个第三方的算法库,pip升级失败后,竟然出现2、看了网上教程进入Anaconda环境下,在缺失pip_script.py 文件下进行一系列操作。。。最后还是失败了。3、其是python中pip文件缺失但又不能用pip安装,因此只能用conda 修复安装的python版本。进入conda环境,输入python, 查看并复制python的版本好号重新输入指定版本号的pythonconda install python==3.8.5,会提出重新安装pip库,因为只安装pip会很快,也不麻烦
2021-11-19 11:33:25 1984
原创 pycharm的python包opencv无代码提示问题解决
一、环境windows10 + Anaconda二、安装opencv环境python==3.8.5numpy==1.19.2opencv-python==4.4.0.46opencv-contrib-python==4.4.0.46``三、最后没有代码提示试了网上各种方法。有在site-package中修改cv2的__init__.py文件的。还有更改pycharm设置的。最后,还是重新安装opencv解决的。额。。。。。pip uninstall opencv-python
2021-11-17 21:40:22 2897
原创 奇异值分解&最小二乘法
奇异值分解&最小二乘法在图像配准方向,需要根据匹配的特征点对, 拟合图像变换参数,根据DLT算法求解系数。假如N个特征点对组成一个2N9的参数矩阵A需要求系数矩阵C其公式满足AC=0最小二乘法求参数求A∗C=0两边乘AT则ATA∗C=0其中ATA是一个9∗9的矩阵求A*C=0\\两边乘A^T 则A^TA*C=0其中ATA是一个9*9的矩阵求A∗C=0两边乘AT则ATA∗C=0其中ATA是一个9∗9的矩阵SVD奇异值分解求参数A=UDVTA∗C=UDVTC=0两边乘UT,DVTC=0设V
2021-10-27 16:48:37 868
原创 集合的所有子集&重写sort&dfs搜索
现在有一个没有重复元素的整数集合S,求S的所有子集注意:你给出的子集中的元素必须按升序排列。给出的解集中不能出现重复的元素。数据范围:,集合中的任意元素满足。要求:空间复杂度 ,时间复杂度。示例1输入:[1,2,3]返回值:[[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]]示例2输入:[]返回值:[]class Solution {public: vector<vector<int> > an
2021-09-27 22:00:47 96
原创 dfs& 加起来和为目标值的组合&有重复项数字的所有排列
两区别的dfs:都是每个值只能使用一次,和为目标值不用使用全部。和为目标值,会根据有序的元素不同开头进行dfs所有序列,需要对每一个元素进行dfs,还要标记是否访问。对于重复元素需要判断同一层的dfs 重复元素 只需要dfs一次需要判断。加起来和为目标值的组合输入:[100,10,20,70,60,10,50],80返回值:[[10,10,60],[10,20,50],[10,70],[20,60]]说明:给定的候选数集是[100,10,20,70,60,10,50],目
2021-09-27 20:22:52 189
原创 Windows下Pycharm中Terminal无法进入conda环境和Python Console 不能使用
windows中在annconda安装pytorch环境后,需要在pycharm中配置才能够使用一些功能。找到annconda prompt 中文件位置-打开属性,在目标中,复制cmd.exe后面所有字符我的是cmd.exe "/K" D:\Anaconda3\Scripts\activate.bat D:\Anaconda3- 打开pycharm,点击File->settings输入Terminal 找到如下界面,并将复制的文字复制进去。给pycharm中Termin
2021-08-23 15:20:58 6885 4
原创 连接服务器(Linux)-在conda中建立自己的深度学习环境
服务器连接添加SSHIP:。。。 端口22用户名:。。。密码:。。。。# Linux/ 根目录, /bin /etc /home /lib /usrhome 中有每一个用户的指定文件夹bin 可执行二进制文件 常见命令boot linux 操作系统系统启动文件dev 设备文件etc 系统配置文件命令命令对应英文作用lslist查看当前文件夹内容pwdprint wrok directory查看当前所在文件夹cdchange
2021-08-23 14:59:43 419
原创 深度学习常见中英文术语解释
Backbone主干网络用来提取图像特征。eg.VGG、ResNet等HeadBackbone 之后连接的网络层,利用主干网络提取的特征进行预测。eg.Dense Predicton(第一阶段) SSD、YOLO等Sparse Prediction(第二阶段) Faster R-CNN 等neckAdditional blocks:SPP、SAM等Path-aggregation blocks:FPN、NAS-FPN等detectordetector = backbone + ne
2021-07-23 19:23:05 789
原创 Git 与 GitHub 建立仓库连接
安装GitGit安装建立本地仓库D盘建立一个个GitTest文件夹进入该文件夹点击鼠标右键,点击Git Bash Here。输入git init 初始化仓库 此时文件夹会生成.git文件(隐藏文件需要设置才能显示)。输入姓名和邮箱标记该用户git config --global user.name "随便取一个用户名" (回车)git config --global user.email "输入你自己的邮箱" (回车)表示你这台机器上所有的Git仓库都会使用这个配置。然后复制文.
2021-04-14 13:57:41 165 1
原创 Winsdows 上安装Git 分布式版本控制软件
一、获取Git 安装包点击进入 git官网。点击 windows下载最新版本。二、Git 安装打开安装包点击Next。选择安装路径选择安装选项:绿色框内的默认的不要动,其他的根据自己需要勾选。是否创建开始菜单文件,选择默认创建。这个是开始菜单文件:选择默认编辑器(Vim)默认Git创建初始分支名称。选择默认从命令行和第三方软件来使用Git选择后端HTTPS传输方式。签出Windows风格,提交Unix风格的行尾”。签出文
2021-04-14 12:05:16 159
原创 求解最小机器重量(回溯法/分支限界)
求解最小机器重量(回溯法/分支限界)回朔法:从后往前记录全局最优解(最小价值,最小重量,尽管他们不是同一个物品上的,最大程度贪心),因为采用DFS深度优先,会马上得到一个结果,然后比较当前选择的重量,价值+在最程度贪心下的最小重量和价值,是否小于给定条件(价值)和已经得到的最小结果值。分支限界:采用优先队列(堆)根据条件设置优先级,找到的第一个结果即为答案,重点找到一个好的限界函数。从全局出发,每次选择一个物品后,算出最大程度贪心取得的最小重量,以此来排序。(如果用已经选择的重量&价值来排序,
2021-04-10 20:49:55 1324 2
原创 LaTex安装(TeXlive+TeXstuido)
一、环境配置(TeXlive)点击TeXlive在清华源下载,下载的是ISO格式的光盘镜像文件。点击下载虚拟光驱软件,下载的是试用版的。加载iso文件,生成一个驱动器(E:)点击bat结尾的批处理文件。点击安装即可。二、安装TeXstudio点击进入TeXstudio进入官网下载。安装后打开TeXstudio,依次点击Options->Configure TeXstudio->General->en->zh_CH。选择中文语言。点击构建(
2020-12-24 20:12:35 991 1
原创 红黑树
红黑树规则:节点只有黑色和红色,根节点必须为黑色,叶子节点为空节点且必须为黑色,不能有连续的红色节点,红色节点的父亲节点不能为红色。从任意一个节点出发到叶子节点的所有路径中经过的黑色节点数目相等。(平衡二叉树是高度差不能超过1,红黑树不能保证平衡二叉树一样完全的平衡)操作:变色插入节点为红色,自底向上变换节点颜色,满足规则2,“平衡”:节点到叶子节点的所有路径中黑色节点数目相同。a. 插入节点21颜色为红色。b. 颜色变换,不算上空节点,三层颜色变换达到一个符合规则2局部红
2020-12-23 21:34:49 88
原创 opencv_contrib-4.0.1+vs2017+Cmake
坑逼的opencv_contrib-4.0.1+vs2017+win10一、安装CMake官网下载CMake版本不能太高,已不能太低,cmake-3.13.2-win64-x64.msi,当初安装最高版本结果里面无法选择对应的VS 2017 Win64默认只有一个而且是win32二、安装VS2017工作负载一定要有选择C++桌面开发,各个版本都可以三、opencv下载opencv官网下载,4.0.1版本,不要下载太高版本,不知道为什么cmake时,会报太多错三、opencv_contrib 下
2020-10-04 15:05:46 332
原创 C++配置OpenCV440
VS2019配置上OpenCV440一. VS2019 安装1.vs 2019 Community(适合学生个人免费试用)2.选择负载组件(根据不同需求)合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入一. VS2019 安装1.vs 2
2020-09-28 17:26:02 1117 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人