- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本文整理了Java中boofcv.alg.geo.calibration.Zhang99DecomposeHomography
类的一些代码示例,展示了Zhang99DecomposeHomography
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Zhang99DecomposeHomography
类的具体详情如下:
包路径:boofcv.alg.geo.calibration.Zhang99DecomposeHomography
类名称:Zhang99DecomposeHomography
[英]Decomposes a homography into rigid body motion (rotation and translation) utilizing specific assumptions made inside the Zhang99 paper [1].
Let K and R be the calibration matrix and rotation matrix.
R = [ r1 , r1 , r1 ]
ri is the ith column in R.
Then compute R using the column of the homography matrix: r1 = λ*inv(K)h1
r2 = λinv(K)h2
r3 = cross(r1,r2)
t = λinv(K)*h3
t is the translation vector. The R computed above is only approximate and needs to be turned into a real rotation matrix.
[1] Zhengyou Zhang, "Flexible Camera Calibration By Viewing a Plane From Unknown Orientations,", International Conference on Computer Vision (ICCV'99), Corfu, Greece, pages 666-673, September 1999.
[中]利用Zhang99论文[1]中的特定假设,将单应性分解为刚体运动(旋转和平移)。
设K和R为校准矩阵和旋转矩阵。
R=[r1,r1,r1]
ri是R中的第i列。
然后使用单应矩阵的列计算R:r1=λ*inv(K)h1
r2=λinv(K)h2
r3=交叉(r1,r2)
t=λinv(K)*h3
t是平移向量。上面计算的R只是近似值,需要转化为一个实旋转矩阵。
[1] 张正友,“通过从未知方向观察飞机进行灵活的摄像机校准”,国际计算机视觉会议(ICCV'99),希腊科孚,第666-673页,1999年9月。
代码示例来源:origin: us.ihmc/DarpaRoboticsChallenge
public void setIntrinsic(IntrinsicParameters intrinsic)
{
DenseMatrix64F K = PerspectiveOps.calibrationMatrix(intrinsic, null);
decomposeH.setCalibrationMatrix(K);
hasIntrinsic = true;
}
代码示例来源:origin: us.ihmc/ImageProcessing
Zhang99DecomposeHomography decomposeH = new Zhang99DecomposeHomography();
decomposeH.setCalibrationMatrix(new DenseMatrix64F(3,3,true,new double[]{555,0,1024/2,0,555,544/2,0,0,1}));
Se3_F64 motion = decomposeH.decompose(H);
代码示例来源:origin: org.boofcv/calibration
/**
* Find an initial estimate for calibration parameters using linear techniques.
*/
protected Zhang99ParamAll initialParam( List<CalibrationObservation> observations )
{
status("Estimating Homographies");
List<DenseMatrix64F> homographies = new ArrayList<>();
List<Se3_F64> motions = new ArrayList<>();
for( CalibrationObservation obs : observations ) {
if( !computeHomography.computeHomography(obs) )
return null;
DenseMatrix64F H = computeHomography.getHomography();
homographies.add(H);
}
status("Estimating Calibration Matrix");
computeK.process(homographies);
DenseMatrix64F K = computeK.getCalibrationMatrix();
decomposeH.setCalibrationMatrix(K);
for( DenseMatrix64F H : homographies ) {
motions.add(decomposeH.decompose(H));
}
status("Estimating Radial Distortion");
computeRadial.process(K, homographies, observations);
double distort[] = computeRadial.getParameters();
return convertIntoZhangParam(motions, K,optimized.assumeZeroSkew, distort,
optimized.includeTangential);
}
代码示例来源:origin: us.ihmc/DarpaRoboticsChallenge
public boolean estimateCameraPose(BufferedImage leftEye)
{
if (!hasIntrinsic)
return false;
gray.reshape(leftEye.getWidth(), leftEye.getHeight());
ConvertBufferedImage.convertFrom(leftEye, gray);
if (!target.process(gray))
return false;
if (!computeH.computeHomography(target.getDetectedPoints()))
return false;
DenseMatrix64F H = computeH.getHomography();
targetToOrigin.set(decomposeH.decompose(H));
return true;
}
代码示例来源:origin: us.ihmc/ihmc-perception
Zhang99DecomposeHomography decomposeH = new Zhang99DecomposeHomography();
decomposeH.setCalibrationMatrix(K);
return decomposeH.decompose(H);
代码示例来源:origin: org.boofcv/boofcv-calibration
/**
* Find an initial estimate for calibration parameters using linear techniques.
*/
protected boolean linearEstimate(List<CalibrationObservation> observations , Zhang99AllParam param )
{
status("Estimating Homographies");
List<DMatrixRMaj> homographies = new ArrayList<>();
List<Se3_F64> motions = new ArrayList<>();
for( CalibrationObservation obs : observations ) {
if( !computeHomography.computeHomography(obs) )
return false;
DMatrixRMaj H = computeHomography.getHomography();
homographies.add(H);
}
status("Estimating Calibration Matrix");
computeK.process(homographies);
DMatrixRMaj K = computeK.getCalibrationMatrix();
decomposeH.setCalibrationMatrix(K);
for( DMatrixRMaj H : homographies ) {
motions.add(decomposeH.decompose(H));
}
status("Estimating Radial Distortion");
computeRadial.process(K, homographies, observations);
double distort[] = computeRadial.getParameters();
convertIntoZhangParam(motions, K,distort, param);
return true;
}
代码示例来源:origin: us.ihmc/IHMCPerception
Zhang99DecomposeHomography decomposeH = new Zhang99DecomposeHomography();
decomposeH.setCalibrationMatrix(K);
return decomposeH.decompose(H);
我正在尝试按照此指南在 C# 中编写 Zhang-Suen 细化算法,而不处理边距。 在“zhangsuen”函数中,我正在读取图像“imgUndo”并写入图像“img”。 for 循环中的指针 da
我正在尝试使用 Zhang-Suen thinning algorithm .我试图用 Java 实现它。但问题是它发现我的边缘不是一个像素宽度的线。我第一次使用这个算法,我不知道我的逻辑有什么问题。
我是一名优秀的程序员,十分优秀!