图像处理
文章平均质量分 55
图像相关知识,拼接等
乐KO烦
这个作者很懒,什么都没留下…
展开
-
windows下VS配置NISwGSP代码
windows下用vs配置NISwGSP原创 2022-10-22 16:12:59 · 1735 阅读 · 7 评论 -
照片属性解释
照片个别参数记录分辨率4000 x 3000 :图像包含的像素点数 ,opencv 读取的图片数组大小。同理下面宽度和高度就是图片宽高包含的像素点数,图像平面的度量单位。水平和垂直分辨率 72 dpi:每英寸包含的像素点数,这个由拍摄相机决定。位深度 24:每个颜色通道占8位的无符号整型,取值0-255,三个RGB通道则占24位。...原创 2021-12-12 16:23:48 · 4783 阅读 · 0 评论 -
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 · 226 阅读 · 0 评论 -
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 · 534 阅读 · 0 评论 -
三维坐标系旋转矩阵推导
注意坐标系旋转不同于坐标点旋转坐标系旋转角度θ则等同于将目标点围绕坐标原点反方向旋转同样的角度θ1.三维坐标系推导过程假设三维坐标系是一个右手坐标系。如下图可以通过右手定则确定是右手坐标系。确定轴的旋转的正方向,用右手的大拇指指向轴的正方向,弯曲手指手指。手指方向即是轴的正旋转方向。2.坐标轴绕z轴旋转坐标轴绕z轴正向旋转相当于op向量在xoy平面上顺时针旋转:则可以推导出其中M’坐标(x’,y’,z’);M坐标(x,y,z)3.绕X轴旋转同理绕X轴正向旋转相当于如下图的向量.原创 2022-05-21 18:18:14 · 4412 阅读 · 0 评论 -
透视变换原理、相机成像、灭点
相机成像设世界坐标为(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 · 2843 阅读 · 0 评论 -
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 · 694 阅读 · 17 评论 -
根据姿态进行拼接
对于地面上 某一个顶点,建立世界坐标系,则该点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 · 149 阅读 · 0 评论 -
二维,三维坐标旋转,左右手坐标系
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 · 1896 阅读 · 0 评论 -
图像多分辨率融合--数据类型
错误图我用python复现C++的多分辨率融合时,因为数据类型使用不当,最终产生融合失败的情况。如下图,图像融合后,像素亮度很高,产生很白的情况。分析首先,构建完两幅镶嵌图像的拉普拉斯金子塔,如左图高斯金子塔图像,可以看出纹理信息,没有错。对两个普拉斯金子塔中的图像分别进行融合,结果图如下,问题来了,融合后的图像从上图的浅色纹理变成了像素值很高的图像,融合出错了。试了很多方法,最终发现opencv读取的图像是unit8,即无符号整型,在融合前,只对图像进行了下采样,上采样,相减操作,并没涉原创 2021-12-09 11:50:51 · 3040 阅读 · 1 评论 -
奇异值分解&最小二乘法
奇异值分解&最小二乘法在图像配准方向,需要根据匹配的特征点对, 拟合图像变换参数,根据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 · 769 阅读 · 0 评论 -
多分辨率融合
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 · 1083 阅读 · 0 评论 -
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 · 541 阅读 · 0 评论 -
深度学习常见中英文术语解释
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 · 729 阅读 · 0 评论 -
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 · 399 阅读 · 0 评论 -
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 · 10632 阅读 · 0 评论 -
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 · 1275 阅读 · 0 评论