当前位置:网站首页>OpenCV计算外包矩形
OpenCV计算外包矩形
2022-07-23 09:21:00 【Chaoying.】
分别计算平行于坐标轴的外接矩形和面积最小的外接矩形
#include <opencv.hpp>
#include <iostream>
using namespace std;
void CornerSift(string ImageName,cv::Rect &boundingRec,cv::RotatedRect &minAreaRec)
{
cv::Mat ImageInput;
ImageInput = cv::imread(ImageName,cv::ImreadModes::IMREAD_COLOR);
if (ImageInput.empty())
{
cout << "图像文件为空!" << std::endl;
return;
}
cv::Mat ImageRGB/*角点检测彩色*/, ImageGray;
ImageInput.copyTo(ImageRGB);
cvtColor(ImageRGB, ImageGray, cv::COLOR_BGR2GRAY);
vector<cv::KeyPoint> Keypoints;
float thContrast = 0.03;//角点对比度阈值
float thEdge = 10;//特征值之比。越小角点质量越高
cv::Ptr<cv::Feature2D> f2d = cv::SIFT::create(0, 3, thContrast, thEdge, 1.6);
f2d->detect(ImageGray, Keypoints);
int num = Keypoints.size();
//打印点坐标
vector<cv::Point2f> kPxys;
for (int i = 0; i < num; i++)
{
cv::KeyPoint kP = Keypoints[i];
//cout << kP.pt.x << "\t" << kP.pt.y << endl;
kPxys.push_back(kP.pt);
}
//绘制特征点
cv::drawKeypoints(ImageRGB, Keypoints, ImageRGB, cv::Scalar(255, 255, 0), cv::DrawMatchesFlags::DEFAULT);
//基于sift特征点计算最小外接矩形
//平行坐标轴的外接矩形
boundingRec = cv::boundingRect(kPxys);
cv::rectangle(ImageRGB, boundingRec, cv::Scalar(255, 0, 0),2);
//面积最小外接矩形
minAreaRec = cv::minAreaRect(kPxys);
cv::Point2f minAreaRecOPoints[4];
minAreaRec.points(minAreaRecOPoints);
for (int i = 0; i < 4; i++)
{
cv::Point2f startPoint = minAreaRecOPoints[i];
cv::Point2f endPoint;
if (i != 3)
{
endPoint = minAreaRecOPoints[i + 1];
}
else
{
endPoint = minAreaRecOPoints[0];
}
cv::line(ImageRGB, startPoint, endPoint, cv::Scalar(0, 255, 0), 2);
}
cv::imshow("2D Features", ImageRGB);
cv::waitKey(0);
cv::destroyAllWindows();
return;
}
int main()
{
cv::Rect boundingRec;
cv::RotatedRect minAreaRec;
CornerSift("t3.jpg",boundingRec,minAreaRec);
//获取矩形相关信息
cv::Point2f center = minAreaRec.center;
cv::Size2f recSize = minAreaRec.size;
float recAngle = minAreaRec.angle;
cout << center << endl;
cout << recSize << endl;
cout << recAngle << endl;
return 0;
}
效果
边栏推荐
- 生成订单号
- 2022河南萌新联赛第(二)场:河南理工大学 补题题解
- Towhee weekly model
- 在使用 VScode 进行代码格式化后,保存发现代码又变乱了,怎么办?vs去掉格式化
- After using vscode to format the code, save and find that the code is messy again. What should I do? Vs remove formatting
- koa框架的使用
- Authing supports Zadig! Unified authentication and rapid docking of cloud native users
- CPU,内存,磁盘速度比较
- Right click to create a new TXT. The new text file is missing. You can solve it by adding a registry. Find the ultimate solution that can't be solved
- 转自玉溪信息公开:mRNA新冠疫苗、九洲马破伤风免疫球蛋白等产品有望年内上市。
猜你喜欢

Sword finger offer 46. translate numbers into strings

C language project practice: 24 point game calculator (based on knowledge points such as structure, pointer, function, array, loop, etc.)

js日历样式饼图统计插件

【FLink】FLink Hash collision on user-specified ID “opt“. Most likely cause is a non-unique ID

Authing supports Zadig! Unified authentication and rapid docking of cloud native users

Which is a good fixed asset management system? What are the fixed asset management platforms?

Sword finger offer19 regular expression

Canvas from getting started to persuading friends to give up (graphic version)

Optimize Huawei ECs to use key login

R语言实战应用案例:绘图篇(三)-多种组合图型绘制
随机推荐
JS software unloading prompt expression changes with the mouse JS special effect
Towhee 每周模型
Summary of JS data type judgment methods
Uni app knowledge points and records of problems and solutions encountered in the project
关于flex布局justify-content:space-around最后一个不对齐的解决方法和为什么这样子解决是讨论
Yunna | how to manage the fixed assets of the company? How to manage the company's fixed assets better?
OKRK3399開發板預留I2C4掛載EEPROM
C语言入门实战(11):输入一组正整数,求逆序数的和
【附下载】值得收藏的几款渗透测试常用的脚本
在使用 VScode 进行代码格式化后,保存发现代码又变乱了,怎么办?vs去掉格式化
Question 142 of Li Kou: circular linked list 2
【论文笔记】基于分层深度强化学习的移动机器人导航方法
Canvas from getting started to persuading friends to give up (graphic version)
【PyQt5安装以及使用】
云呐|公司固定资产如何管理?公司固定资产如何管理比较好?
win11安装系统提示virtualBox不兼容需要卸载virtual的解决办法,但是卸载列表找不到virtual的解决办法
什么是Per-Title编码?
Some libraries that can perform 2D or 3D triangulation
Optimisation du serveur Cloud Huawei avec connexion clé
CPU,内存,磁盘速度比较