删去小于阈值的连通区域
来源:互联网 发布:留学中介机构排名知乎 编辑:程序博客网 时间:2024/05/22 08:18
程序:
//std::vector<std::vector<cv::Point>> contours;
//vector<Vec4i> hierarchy;
//cv::findContours(image_gray, contours, hierarchy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE);// CV_RETR_EXTERNAL CV_RETR_CCOMP
//cv::Mat result(image_gray.size(), CV_8U, cv::Scalar(0));
//int index;
//double area, maxArea(0);
//for (int i = 0; i < contours.size(); i++)
//{
// area = contourArea(Mat(contours[i]));
// if (area > maxArea)
// {
// maxArea = area;
// index = i;
// }
//}
//drawContours(result, contours, index, Scalar(255), 2);
//std::cout << " Area " << area << std::endl;
//cv::namedWindow("Contours", 0);
//cv::imshow("Contours", result);
//std::cout << "result.cols " << result.cols << std::endl;
//std::cout << "result.rows " << result.rows << std::endl;
下面是bwareaopen(image_gray,10000); 源代码:
void bwareaopen(Mat& im, double size)
{
// Only accept CV_8UC1
if (im.channels() != 1 || im.type() != CV_8U)
return;
// Find all contours
vector<vector<Point> > contours;
findContours(im.clone(), contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);
for (int i = 0; i < contours.size(); i++)
{
// Calculate contour area
double area = contourArea(contours[i]);
// Remove small objects by drawing the contour with black color
if (area > 0 && area <= size)
drawContours(im, contours, i, CV_RGB(0,0,0), -1);
}
}
- 删去小于阈值的连通区域
- 连通区域的标记
- 平面中点间距小于阈值的异常点探测
- 二值图的连通区域标记
- 连通区域
- cvCanny检测边缘,连通重要的非连通区域
- 连通区域的边界点程序
- opencv 连通区域的最小外接矩形
- 二值的连通区域标记
- 【matlab】求图像的最大连通区域
- matlab找到图像的最大连通区域
- Matlab的regionprops详解 连通区域
- MATLAB 区域生长 连通区域计算 曲线的断点查询
- matlab :产生一定尺寸一定范围内的随机矩阵,并将小于阈值的数置零
- opencv学习笔记之删除面积小于阈值的二值图像
- 阈值分割与区域分割
- 寻找八连通区域
- [转]单连通区域
- Compose 命令说明
- RabbitMQ学习和使用
- 342. Power of Four
- Spark入门实战系列--6.SparkSQL(中)--深入了解SparkSQL运行计划及调优
- Debian下的搜狗拼音安装个人心得
- 删去小于阈值的连通区域
- unity 计算两点的距离
- Compose YAML 模板文件
- 公司面试题目 打印矩阵,先往右打印,到头然后向左下打印,到头然后向左打印,最后向上打印
- Spark入门实战系列--6.SparkSQL(下)--Spark实战应用
- acm 3 1004
- ExpandListView--二级列表事例
- iOS开发——静态库的导入和头文件路径的设置
- PHP设计模式:观察者模式