int main()
{
//打开要识别字符的图像
IplImage *image = cvLoadImage("../../hello.png");
if (image == NULL)
{
std::cout << "错误:无法打开该图像文件!" << std::endl;
}
//转换到灰度图像
IplImage *img_gray = cvCreateImage(cvGetSize(image), image->depth, 1);
cvCvtColor(image, img_gray, CV_BGR2GRAY);
//二值化
IplImage *img_value = cvCreateImage(cvGetSize(img_gray), image->depth, 1);
cvThreshold(img_gray, img_value, 100, 255, CV_THRESH_BINARY_INV);
//寻找轮廓
CvMemStorage *pStorage = cvCreateMemStorage(0);
CvSeq *pConInner = NULL;
int num = cvFindContours(img_value, pStorage, &pConInner, sizeof(CvContour),
CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);
//根据轮廓坐标使用方框标出来
for (int i = 0; i < num; i++)
{
CvRect rc = cvBoundingRect(pConInner);
cvDrawRect(image, cvPoint(rc.x, rc.y), cvPoint(rc.x + rc.width, rc.y + rc.height), CV_RGB(255, 0, 0));
pConInner = pConInner->h_next;
}
//显示图像
cvNamedWindow("image", 0);
cvNamedWindow("image_gray", 0);
cvNamedWindow("img_value", 0);
cvShowImage("image", image);
cvShowImage("image_gray", img_gray);
cvShowImage("img_value", img_value);
cvWaitKey(0);
}
opencv轮廓提取
原创
©著作权归作者所有:来自51CTO博客作者一叶孤舟渡的原创作品,请联系作者获取转载授权,否则将追究法律责任
opencv轮廓提取
https://blog.51cto.com/u_15652881/5322693
opencv轮廓提取
https://blog.51cto.com/u_15652881/5322693
下一篇:C++如何写一个函数
举报文章
请选择举报类型
内容侵权
涉嫌营销
内容抄袭
违法信息
其他
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
OpenCV 简单的人脸识别
OpenCV中自带已训练好的检测器,包括面部,眼睛,猫脸等,都保存在XML文件中,我们可以通过以下程序找到他们
opencv python 人工智能 xml 人脸识别 -
QT+Opencv实现视频流播放
1.简单流程首先通过opencv打开视频流,获取到数据帧,然后将数据帧转换为QT可识别的图像,显示到QT界面上。2.openc
#include #pragma 数据帧 -
ROS2+Gazebo+OpenCV之mobot仿真视觉传感器
之前介绍了使用笔记本或者USB摄像头的一些方法,比如
opencv 计算机视觉 人工智能 ROS2 Gazebo -
ROS2+Gazebo11+Car+OpenCV巡线识别和速度转向控制学习
ROS2+Gazebo11+Car+OpenCV获取巡线视觉数据学习ROS2+Gazebo11+Car+OpenCV录制视觉数据和控制学习 完成如上两篇
ROS2 机器人操作系统 OpenCV python 数据 -
【OpenCV】基本操作图像金字塔
【OpenCV】⚠️高手勿入!半小时学会基本操作 18⚠️ 概述图像金字塔高斯金字塔拉布拉斯
高斯金字塔 图片展示 图像金字塔 -
Halcon缺陷检测实例转OpenCV实现(六)瓶口缺陷检测
Halcon缺陷检测实例转OpenCV实现(一)-网格缺陷检测 Halcon缺陷检测实例转OpenCV实现(二)
缺陷检测 极坐标变换 坐标变换 均值滤波 差分