直角点的自动增补与直角化处理(数字摄影测量)
直角点的自动增补与直角化处理
数字摄影测量关于直角点的自动增补与直角化处理基于MFC的实现
核心代码:
std::vector<CPoint> temp;void CzhijiaodianView::OnLButtonDown(UINT nFlags, CPoint point)
{// TODO: 在此添加消息处理程序代码和/或调用默认值CDC* pDC = GetDC();CString str;str.Format(TEXT("%d,%d"), point.x, point.y);pDC->FillSolidRect(0, 0, 100, 100, GetSysColor(COLOR_WINDOW));pDC->TextOut(1, 0, str);temp.push_back(point);CView::OnLButtonDown(nFlags, point);//CDC* pDC = GetDC();//此时利用的是CWnd的成员函数GetDCfor (size_t i = 0; i < temp.size()-1; i++){pDC->MoveTo(temp[i]);pDC->LineTo(temp[i + 1]);}ReleaseDC(pDC);
}void CzhijiaodianView::OnAzengbu()
{// TODO: 在此添加命令处理程序代码CPoint Xn_Yn;CDC* pDC = GetDC();//此时利用的是CWnd的成员函数GetDCdouble x1, y1, x2, y2, xn_, yn_, dx, dy, D;double Xn, Yn;x1 = temp[0].x;y1 = temp[0].y;x2 = temp[1].x;y2 = temp[1].y;xn_ = temp[temp.size() - 1].x;yn_ = temp[temp.size() - 1].y;dx = x2 - x1;dy = y2 - y1;D = pow(dx, 2) + pow(dy, 2);Xn = ((x1 * dx + y1 * dy) * dx - (yn_ * dx - xn_ * dy) * dy) / D;Yn = ((yn_ * dx - xn_ * dy) * dx + (x1 * dx + y1 * dy) * dy) / D;Xn_Yn.x = long(Xn);Xn_Yn.y = long(Yn);temp.push_back(Xn_Yn);pDC->MoveTo(temp[temp.size() - 2]);pDC->LineTo(temp[temp.size() - 1]);pDC->MoveTo(temp[temp.size() - 1]);pDC->LineTo(temp[0]);ReleaseDC(pDC);
}void CzhijiaodianView::OnAzhijiaohua()
{// TODO: 在此添加命令处理程序代码CDC* pDC = GetDC();double xi=temp[0].x, yi=temp[0].y, xj = temp[1].x, yj = temp[1].y,xk = temp[2].x, yk = temp[2].y, xn = temp[3].x, yn = temp[3].y;double A[24], W[3], P[64] = {};double AT[24] = {}, AQ[24] = {}, AQAT[9] = {}, K[3] = {}, P_AT[24] = {}, V[8] = {};A[0] = xk-xi ; A[1] = yk-yi; A[2] = 2*xj-xi-xk; A[3] = 2*yj-yi-yk; A[4] = xi-xj;A[5] = yi-yj; A[6] = 0.0; A[7] = 0.0; A[8] = 0.0; A[9] = 0.0;A[10] = xn-xk;A[11] = yn-yk; A[12] = 2*xk-xj-xn; A[13] = 2*yk-yi-yn; A[14] = xj-xk; A[15] = yj-yk;A[16] = xk - xn; A[17] = yk - yn; A[18] = 0.0; A[19] = 0.0; A[20] = xi-xn;A[21] = yi-yn;A[22] = 2*xn-xk-xi; A[23] = 2*yn-yk-yi;W[0] = -((xi - xj) * (xk - xj) + (yi - yj) * (yk - yi));W[1] = -((xj - xk) * (xn - xk) + (yj - yk) * (yn - yk));W[2] = -((xk - xn) * (xi - xn) + (yk - yn) * (yi - yn));for (int i = 0; i < 64; i += 9){P[i] = 1.0;}MatrixTra(3, 8, A, AT);//求AT(8*3)MatrixInv(3, P);//求P的逆MatrixMul(A, P, 3, 8, 8, AQ);//求A*Q(3*8)MatrixMul(AQ, AT, 3, 8, 3, AQAT);//求AQAT(3*3)MatrixInv(3, AQAT);//求AQAT的逆矩阵(3*3)MatrixMul(AQAT, W, 3, 3, 1, K);//求KMatrixMul(P, AT, 8, 8, 3, P_AT);//求QATMatrixMul(P_AT, K, 8, 3, 1, V);//求Vstd::vector<CPoint>temp_new;CPoint var;for (size_t i = 0; i < temp.size(); i++){var.x = temp[i].x + V[2 * i];var.y = temp[i].y + V[2 * i + 1];temp_new.push_back(var);}for (size_t i = 0; i < temp_new.size() - 1; i++){pDC->MoveTo(temp_new[i]);pDC->LineTo(temp_new[i + 1]);}pDC->MoveTo(temp_new[temp_new.size() - 1]);pDC->LineTo(temp_new[0]);ReleaseDC(pDC);}
直角点的自动增补与直角化处理(数字摄影测量)相关推荐
- 数字摄影测量-直角的自动增补
#数字摄影测量-直角的自动增补 用的是MFC 关键代码: std::vector<CPoint> temp;void CzhijiaodianView::OnLButtonDown(UIN ...
- 计算机应用池在哪,机动车号牌发放将全国统一 号池号码全部由计算机随机投放、自动增补...
生活报6月1日讯 近日,公安部部署启动机动车号牌管理改革,此次号牌管理改革推出了一系列新的服务群众举措:车主可以登陆网站或用手机APP进行网上选号,选号范围有所扩大,保留号牌也将更加容易.按照公安部统 ...
- selenium自动登录boss直聘
基于selenium模块自动登录boss直聘 超级鹰识别验证码操作详细. import timefrom PIL import Image from selenium import webdriver ...
- CASAIM全自动3d测量仪自动检测差速器差壳全尺寸测量装配检测
随着汽车行业的新变化,汽车零部件行业也呈现出新的发展趋势.汽车零部件产品作为汽车制造业的配套产业,发展也十分迅速. 差速器作为汽车关键零部件,由差速器差壳.行星齿轮.半轴齿轮.半轴和行星齿轮轴组装而成 ...
- Appium+Python实现自动投递Boss直聘简历
一.首先安装Appium和所需要的所有环境 这里所需要的所有软件和环境,可以看我这篇博客. https://blog.csdn.net/qq_43107323/article/details/1056 ...
- 关于手机APP在手机桌面图标圆形的,圆角方形的,直角方形的自动适配。
去年看到有人提了说桌面图标在有的手机上不一样,即使同一个手机不同的app,图标也是不一样,有的方形,有的圆形(华为手机8.0),就自己网上看了看,把公司的app桌面图标适配了,但是今天写新项目时发现又 ...
- 量化延时法时间测量_干货分享:直线度测量发展及几种方法详解
摘要:直线度是很多轧材需要检测的一项重要尺寸,直线度的测量已经从人工测量方式发展为直线度测量仪自动测量. 关键词:直线度:测量方式: 主要是测量圆柱体和圆锥体的素线直线度误差.机床和其他机器的导轨面以 ...
- 双像立体测图基础与立体测图
立体像对的基本知识 立体像对的基本概念 立体像对:由不同摄站获取的,具有一定影像重叠的两张像片. 立体像对的点.线.面 从数学上讲,若知道了像片的内外方位元素和同名像点的坐标,则可以列出4个方程,求解 ...
- VSLAM中的特征点三角化
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:紫薯萝卜 https://zhuanlan.zhihu.com/p/103694374 本文仅做 ...
最新文章
- AI | 优化背后的数学基础
- IIS 内部运行机制
- ssd_detected.cpp代码 head.h代码
- Ribbon、Feign和OpenFeign的区别来了
- r语言 中断r的输入_R语言_004数据输入
- ON1 photo raw 2021(ps/lr滤镜插件) 下载及安装
- FreeMarker中文API手冊(完整)
- 各种字符串Hash函数
- pycharm的todo和fixme标记,标志为今后再做和bug点
- 5. JavaScript RegExp 类型
- Java多线程讲解,超详细!可获取相关笔记
- Flink查询关联Hbase输出
- 电脑快速截屏(缺少PrtScr键)
- Gpower CMS/模板置标
- 计算机文档排版软件,WORD排版大师
- 几款强大的数据恢复工具你有用过吗
- 密封橡胶圈尺寸缺陷视觉检测系统
- 网站制作工具简介_实用又免费的短视频制作工具及短视频素材源网站
- Fiddler抓取手机端APP接口数据
- ES3之cookie