矩阵的旋转平移正变换及反变换
假设一个点P(x,y,z),旋转矩阵T,平移向量V,则旋转后的平移表达式为T*P+V,此处采用右乘准则,用矩阵表示为: [T V;0 1]*[T0 V0;0 1]=[T*T0 T*V0+V;0 1] 其中T0为P原始坐标系的旋转矩阵,V0是P原始坐标系的评议向量,则相应的逆变换为 [inv(T) - inv(T)*V ; 0 1]*[T0 V0;0 1]=[inv(T)*T0 inv(T)*V0-inv(T)*V;0 1] 从上式可以看出,正变换在先旋转后平移的情况下,其逆变换是先平移后旋转
直线拟合之最小二乘法AX+BY+C=0
最小二乘法拟合直线,对于大多数人都不是很陌生,直线方程 y=kx+b,令sum((y-kx-b)^2),分别对k和b求导便可求出最佳的参数,但是如果遇到诸如“X=5”这样的直线方程,又该如何呢?这时候就不再适用了,参考这个方法,这样拟合出来的才是直线的一般方程。 Let the line sought be Ax + By + C = 0, with no restriction on A, B,and C, except not both of A and B are zero. Then the distance from apoint (x[n],y[n]) to this line is given by d[n] = |A*x[n]+B*y[n]+C|/sqrt(A^2+B^2). Then the sum of the squares of the distances of the r points from theline is F(A,B,C) = SUM d[n]^2 = SUM (A*x[n]+B*y[n]+C)^2/(A^2+B^2). H...
多频相移外差相位展开算法
原理 参数设置12345678910111213141516clc;clear;close allT1=70; % 周期T2=64;T3=59;T1=76;T2=57;T3=37;row=1140;col=912;f1=1/T1; %频率f2=1/T2;f3=1/T3;f123=f1*f2*f3/(f1*f2+f2*f3-2*f1*f3) %3频合成后的频率为1L1=col/T1; % 单周期像素个数 单位:像素/周期, 即可理解位波长L2=col/T2;L3=col/T3;L2048=L1*L2*L3/(L1*L2+L2*L3-2*L1*L3) 多频条纹生成1234567891011121314151617181920212223242526272829303132333435363738394041424344%% f1 生成4频条纹x=1:col;theta1=[0,pi/2,pi,3*pi/2];I1=127.5+127.5*sin(theta1(1)+2*pi*x/L1);I2=127.5+127.5*sin(theta1(2)+2*pi*x/L1);I3=12...
多频外差相位展开李中伟
原理本文参考文献:基于数字光栅投影的结构光三维测量技术与系统研究 12345678910111213F12=F1-F2;F12(F1<F2)=F12(F1<F2)+2*pi;F23=F2-F3;F23(F2<F3)=F23(F2<F3)+2*pi;F12=round(F12*10^8)/10^8;F23=round(F23*10^8)/10^8;F123=F12-F23;F123(F12<F23)=F123(F12<F23)+2*pi;figure,imshow(F123,[]);FF12=2*pi*round((F123*L123/L12-F12)/(2*pi))+F12;FF1=2*pi*round((FF12*L12/L1-F1)/(2*pi))+F1; 实验结果
单幅图像远心镜头畸变标定及矫正
本文参考文献:Lens distortion correction using ideal image coordinates;但是最小化方法不同,本文采用了非线性优化,而且原文非线性优化方程似乎不太对 基本步骤步骤一:提取mark点提取mark点坐标,尽量让图像中心对齐某一个mark点中心,视野布满mark点,这一步不多介绍 步骤二:构建标准mark点基本方法:以离图像中心最近的一个mark点为中心,选择其领域的8个mark点,计算平均角度,并以中心点4领域mark点距离平均值为Gap,构建理想mark点,此时理想点应该是等间距及绝对平行和垂直的 步骤三: 初始化畸变参数及图像中心本文计算像素当量,是利用步骤2中Gap和物理距离直接计算的,而且没有考虑角度这个参数,原文不是很理解,有懂的大家可以一起交流畸变参数初始化参见:a flexible new technique for camera calibration 步骤四: 非线性优化畸变模型如下所示 畸变模型是建立在无畸变坐标系下面的,就是用无畸变求解畸变坐标下的坐标是正向解,反之是反向解,反向解会比较麻烦,但是原文最优...
一种非线性相位误差的全场补偿方法
参考文献:一种非线性相位误差的全场补偿方法 原理误差平面求解相位误差补偿
QT 调用QT界面DLL
DLL导出定义 Common_Global.h1234567#if defined(COMMON_LIBRARY)# define COMMON_EXPORT Q_DECL_EXPORT#else# define COMMON_EXPORT Q_DECL_IMPORT#endif 定义接口 IGrr.h1234567891011#pragma once#include "../Common/Common_global.h"class QDetectObj;class COMMON_EXPORT IGRR{public: virtual void Show() = 0;}; ##定义界面导出类QGrrUI.h 123456789101112131415161718192021#include <QObject>#include "IGrr.h"#include "GRR.h"class COMMON_EXPORT QGrrUI : public IGRR{public: Q...
Object c 调用标准C/C++代码
因项目需求,需要在mac平台下开发程序, 其中引用了标准c/c++代码,涉及混合编程, 其实很简单, 只需要在工程中添加.mm文件及.h文件即可,.mm文件就是我们常见的.cpp文件,包含所有的头文件及实现函数,但是出口函数前面要添加 extern "C" void Function() 而头文件里面, 只有函数的声明, 同时将.cpp文件修改为.mm文件, xcode编译器选项选择为自动根据文件选择编译器即可
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post1$ hexo new "My New Post" More info: Writing Run server1$ hexo server More info: Server Generate static files1$ hexo generate More info: Generating Deploy to remote sites1$ hexo deploy More info: Deployment
多频外差原理相位解包裹方法的改进[原作责:陈松林]
频率确认原理 代码123456789101112131415161718192021222324252627282930313233343536373839404142%% ref: 多频外差原理相位解包裹方法的改进% 确定3频参数,解决跳变问题clc;clear;close allp1=20;hPixcel=1024;error=pi/30;out=[];while 1 if p1 < 5 break; end p3Max=floor((pi-error)*p1/error); for p3=p3Max:-1:1 p2=ceil(p3*error/(pi-error))-1; while 1 p2=p2+1; if p2>= p3 break; end if p2<=p1 continue; end p12=...
