JavaCV cvEstimateRigidTransform函数使用心得

简介: JavaCV cvEstimateRigidTransform函数使用心得@Date 2018.09.27函数定义对应OpenCV中的estimateRigidTransform函数此函数用作根据变换矩阵对图片进行指定大小的变换Mat e...

JavaCV cvEstimateRigidTransform函数使用心得

@Date 2018.09.27

函数定义
  • 对应OpenCV中的estimateRigidTransform函数
    • 此函数用作根据变换矩阵对图片进行指定大小的变换
    • Mat estimateRigidTransform(InputArray src,InputArray dst,bool fullAffine)
    • src : 变换前的图片关键点
    • dst : 期望变换后的图片关键点
    • fullAffine : 1(全仿射变换), 0(带有约束的仿射变换)
    • 返回值 : 得到变换后的图片MAT
使用场景
  • 项目中实际场景可能为在一张图片中, 切出人脸图片. 但是人脸图片是根据坐标切割, 图片的像素大小是不固定的.
    现在可以根据矩阵变换, 把所有人脸图片归一到指定大小, 比如80 * 80
JavaCV
  • 在JavaCV中参数传递都是以Mat对象传递
  • 需要提前开辟好关键点对象的空间
// pointer存储关键点矩阵信息
Point2f pointerX = new Point2f();
Point2f pointerY = new Point2f();
// 转换pointer到mat
Mat matSrcA = new Mat(3, 2, CV_32FC1, pointerX);
Mat matSrcB = new Mat(3, 2, CV_32FC1, pointerY);

// Javacv中返回值需要提前开辟传入
Point2f cv = new Point2f();
Mat cvEstimateOut = new Mat(2, 3, CV_32FC1, cv);
// 关键点矩阵转换
cvEstimateRigidTransform(new CvMat(matSrcA), new CvMat(matSrcB), new CvMat(cvEstimateOut), 0);

// JavaCV函数 : 根据前后关键点矩阵, 进行指定图片大小的变换
Mat result = new Mat(80, 80, CV_8UC3);
warpAffine(matImage, result, cvEstimateOut, new Size(80, 80));
AI 代码解读
目录
打赏
0
0
0
0
1116
分享
相关文章
docker拉取MySQL后数据库连接失败解决方案
通过以上方法,可以解决Docker中拉取MySQL镜像后数据库连接失败的常见问题。关键步骤包括确保容器正确启动、配置正确的环境变量、合理设置网络和权限,以及检查主机防火墙设置等。通过逐步排查,可以快速定位并解决连接问题,确保MySQL服务的正常使用。
692 82
『Jenkins』Jenkins部署.Net Core——直接跳过坑带你部署
📣读完这篇文章里你能收获到 - 本文将以图文的形式带你一步一步部署 - 对于其中的坑会提前告知跳过,避免踩中
839 0
『Jenkins』Jenkins部署.Net Core——直接跳过坑带你部署
Quick BI × 宜搭:低代码敏捷开发与专业数据分析的完美融合,驱动企业数字化转型新范式
钉钉低代码平台宜搭与瓴羊QuickBI深度融合,提供前端敏捷构建+后端智能决策的解决方案。通过无缝对接的数据收集与分析、一站式数据分析及报表嵌入等功能,实现业务与数据双重赋能。
253 2
【赵渝强老师】Yarn的资源调度策略
Yarn作为资源和任务调度平台,支持多个应用程序同时运行,如MapReduce、Spark和Flink等。Yarn的资源调度方式主要包括FIFO Scheduler(先来先服务)、Capacity Scheduler(容量调度)和Fair Scheduler(公平调度)。FIFO Scheduler按任务提交顺序调度;Capacity Scheduler通过队列管理资源,支持多租户共享;Fair Scheduler则根据任务权重动态分配资源,确保公平性。
530 8
《阿里云物联网:连接智能未来的桥梁》
在数字化飞速发展的今天,物联网技术正以前所未有的速度改变着我们的生活和工作方式。阿里云物联网作为行业领军者,凭借其在云计算、大数据和人工智能等领域的深厚积累,为全球用户提供了一站式的物联网解决方案。阿里云物联网不仅拥有强大的云平台支撑和丰富的物联网产品体系,还具备智能化应用开发能力和完善的安全保障体系。从智能家居到智能工业,从智能交通到智能城市,阿里云物联网广泛应用于各个领域,并将持续加大技术创新和产品研发力度,拓展国际市场,与全球合作伙伴共同推动行业的发展。阿里云物联网将继续发挥其技术优势和创新能力,为全球用户提供更加智能、高效、安全的物联网解决方案。
165 1
vue2知识点:消息订阅与发布
vue2知识点:消息订阅与发布
121 1
python数据分析——业务指标分析
业务指标分析是企业运营中不可或缺的一环,通过对各项关键指标的深入剖析,我们能够更好地了解企业的运营状况,发现潜在问题,进而制定相应的策略来优化业务流程、提升经营效率。 在业务指标分析中,我们首先要明确分析的目的和范围。是为了评估整体业务健康状况,还是针对某一具体环节进行优化?明确了目的后,我们需要收集相关的数据,这些数据可能来源于不同的业务系统和数据库,因此数据的整合和清洗也是分析过程中的重要步骤。 接下来,我们要选择合适的分析方法。比如,对于销售数据,我们可以采用时间序列分析来观察销售趋势;对于用户行为数据,我们可以使用用户画像和路径分析来洞察用户需求和行为习惯。
294 1
QT+OpenGL开始3D
顶点坐标起始于局部空间,它在之后会变为世界坐标,观察坐标,裁减坐标,并最后以屏幕坐标的形式结束。
222 0
Qt日志工具--QsLog
Qt日志工具--QsLog
332 1
【C++ 随机数分布类型 】深入探索C++随机数分布:原理、应用与实践(一)
【C++ 随机数分布类型 】深入探索C++随机数分布:原理、应用与实践
376 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等