【OpenCV学习笔记】二十五、轮廓查找与绘制(二)访问轮廓中每个点
来源:互联网 发布:网络机顶盒能收多少台 编辑:程序博客网 时间:2024/05/16 01:35
轮廓查找与绘制(二)访问轮廓中每个点
先上ppt:
代码:
///访问轮廓中每个点,并绘制在原图上#include "opencv2/opencv.hpp"using namespace cv;#include <iostream>using namespace std;int main(){//1.查找轮廓时,一般使用二值化图像,进行阈值化处理或者Canny边缘检测Mat srcImg = imread("22.jpg", CV_LOAD_IMAGE_COLOR);resize(srcImg,srcImg,Size(),0.7,0.7);imshow("srcImg", srcImg);Mat copyImg = srcImg.clone();//将原图像备份(查找轮廓会改变原图像)cvtColor(srcImg, srcImg, CV_BGR2GRAY);//转换成灰度图(阈值化需要图像会灰度图)threshold(srcImg, srcImg, 100, 255, CV_THRESH_BINARY_INV); //阈值化并保证黑色背景白色轮廓imshow("threshold", srcImg);//2.查找轮廓并绘制轮廓vector<vector<Point>> contours;//存放检测到的轮廓,每个轮廓均由点组成vector<Vec4i> hierarchy;//还未理解,没用到.//2.1查找轮廓——findContours()//轮廓检索模式:CV_RETR_EXTERNAL为检测最外层//轮廓近似方法:CV_CHAIN_APPROX_NONE为连续存储所有的轮廓点//findContours(srcImg,contours,CV_RETR_EXTERNAL,CV_CHAIN_APPROX_NONE);//轮廓检索模式:CV_RETR_TREE及其他均为检测所有轮廓//轮廓近似方法:CV_CHAIN_APPROX_SIMPLE为对于压缩存储,对于水平、垂直或斜向的线段,只会存储端点findContours(srcImg, contours, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE);//2.2访问每个轮廓中的每个点,绘制在原图上//drawContours(copyImg, contours, -1, Scalar(0, 255, 0), 2, 8);//contourIdx:绘制轮廓索引,-1为绘制所有轮廓for (int i = 0;i<contours.size();i++)//遍历每个轮廓{for (int j = 0;j<contours[i].size();j+=10)//遍历轮廓中的所有点{//以画圆的方法在原图中画出每个轮廓中的点(以下两种方法一样)//circle(copyImg, Point(contours[i][j].x, contours[i][j].y), 1, Scalar(0, 255, 0), 2, 8);circle(copyImg,contours[i][j],3,Scalar(0,255,0),2,8);}}imshow("draw", copyImg);waitKey(0);return 0;}
运行结果:
1 0
- 【OpenCV学习笔记】二十五、轮廓查找与绘制(二)访问轮廓中每个点
- 【OpenCV学习笔记】二十四、轮廓查找与绘制(一)
- opencv之轮廓的查找与绘制(二)
- opencv 查找轮廓 绘制轮廓
- opencv学习笔记(三十五)查找轮廓
- Opencv学习之查找并绘制轮廓
- opencv(20)---轮廓查找与绘制
- opencv之轮廓的查找与绘制
- opencv开发笔记(十二):查找并绘制轮廓
- OpenCV轮廓特性(二)
- Opencv(Python) 教程-轮廓(1)查找与绘制轮廓
- OpenCV笔记: 查找轮廓
- opencv 查找并绘制轮廓
- 轮廓 - 查找轮廓、表示轮廓、绘制轮廓
- 轮廓 - 查找轮廓、表示轮廓、绘制轮廓
- 轮廓 - 查找轮廓、表示轮廓、绘制轮廓
- OpenCV入门(二十六)-- 轮廓检测
- OpenCV 删除轮廓的方法(二)
- 博通机顶盒平台GPT分区和制作工具
- 发送短信内容过长时分多条发送
- python爬虫实战二之爬取百度贴吧帖子
- 二进制颜色代码大全附英文名(转载)
- 在APP中加载网页的套路(一):外壳的产生
- 【OpenCV学习笔记】二十五、轮廓查找与绘制(二)访问轮廓中每个点
- 人才留得住是因为本身就留得住 留不住的你永远留不住
- 设置条目字体大小
- guava——集合(2)
- 通俗易懂!超全面的移动端尺寸基础知识科普指南
- LR_函数
- 在roscore时出现 terminate called after throwing an instance of 'std::runtime_error'的解决方法
- 为FragmentDialog添加转场动画
- Codeforces 652C Foe Pairs【二分+RMQ】好像这题Dp做法很多啊