当前位置:网站首页>【opencv】图像形态学操作-opencv标记不同连通域的位置
【opencv】图像形态学操作-opencv标记不同连通域的位置
2022-07-06 22:59:00 【GLL_】
【opencv】图像形态学操作-opencv标记不同连通域的位置
/** @overload
@param image the 8-bit single-channel image to be labeled
@param labels destination labeled image
@param stats statistics output for each label, including the background label.
Statistics are accessed via stats(label, COLUMN) where COLUMN is one of
#ConnectedComponentsTypes, selecting the statistic. The data type is CV_32S.
@param centroids centroid output for each label, including the background label. Centroids are
accessed via centroids(label, 0) for x and centroids(label, 1) for y. The data type CV_64F.
@param connectivity 8 or 4 for 8-way or 4-way connectivity respectively
@param ltype output image label type. Currently CV_32S and CV_16U are supported.
*/
CV_EXPORTS_W int connectedComponentsWithStats(InputArray image, OutputArray labels,
OutputArray stats, OutputArray centroids,
int connectivity = 8, int ltype = CV_32S);
system("color F0");
Mat img = imread("D:/image/ml2.png");
if (img.empty()) {
cout << "img is empty." << endl;
return;
}
//imshow("srcImg", img);
Mat rice, riceBW;
cvtColor(img, rice, COLOR_BGR2GRAY);
imshow("rice", rice);
threshold(rice, riceBW, 50, 255, THRESH_BINARY);
imshow("riceBW", riceBW);
RNG rng(10086);
Mat out, stats, centroids;
//
int number = connectedComponentsWithStats(riceBW, out, stats, centroids, 8, CV_16U);
vector<Vec3b> colors;
for (int i = 0; i < number; i++) {
Vec3b vec3 = Vec3b(rng.uniform(0, 256), rng.uniform(0, 256), rng.uniform(0, 256));
colors.push_back(vec3);
}
Mat result = Mat::zeros(rice.size(), img.type());
int w = result.cols;
int h = result.rows;
for (int i = 1; i < number; i++) {
int center_x = centroids.at<double>(i, 0);
int center_y = centroids.at<double>(i, 1);
int x = stats.at<int>(i, CC_STAT_LEFT);
int y = stats.at<int>(i, CC_STAT_TOP);
int w = stats.at<int>(i, CC_STAT_WIDTH);
int h = stats.at<int>(i, CC_STAT_HEIGHT);
int area = stats.at<int>(i, CC_STAT_AREA);
circle(img, Point(center_x, center_y), 2, Scalar(0, 255, 0), 2, 8, 0);
Rect rect(x, y, w, h);
rectangle(img, rect, colors[i], 1, 8, 0);
putText(img, format("%d", i), Point(center_x, center_y),
FONT_HERSHEY_SIMPLEX, 0.5, Scalar(0, 0, 255), 1);
cout << "number: " << i << ",area: " << area << endl;
}
imshow("result:", img);
waitKey(0);
结果:
边栏推荐
- JS also exports Excel
- 第一篇论文的写作流程
- Chapter 9 Yunji datacanvas company won the highest honor of the "fifth digital finance innovation competition"!
- Flex layout and usage
- Read of shell internal value command
- Canteen user dish relationship system (C language course design)
- 使用Thread类和Runnable接口实现多线程的区别
- STM32F103实现IAP在线升级应用程序
- If you ask me about R code debugging, I will tell you head, STR, help
- Ansible中的inventory主机清单(预祝你我有数不尽的鲜花和浪漫)
猜你喜欢
sublime使用技巧
3GPP信道模型路损基础知识
offer如何选择该考虑哪些因素
R language principal component PCA, factor analysis, clustering analysis of regional economy analysis of Chongqing Economic Indicators
A simple and beautiful regression table is produced in one line of code~
Flask project uses flask socketio exception: typeerror: function() argument 1 must be code, not str
Dynamically generate tables
装饰器基础学习02
Error: No named parameter with the name ‘foregroundColor‘
Techniques d'utilisation de sublime
随机推荐
npm ERR! 400 Bad Request - PUT xxx - “devDependencies“ dep “xx“ is not a valid dependency name
sublime使用技巧
A simple and beautiful regression table is produced in one line of code~
【二叉树】二叉树寻路
基于Bevy游戏引擎和FPGA的双人游戏
Basic knowledge of road loss of 3GPP channel model
offer如何选择该考虑哪些因素
Why is the salary of test and development so high?
vector和类拷贝构造函数
Gavin teacher's perception of transformer live class - rasa project actual combat e-commerce retail customer service intelligent business dialogue robot microservice code analysis and dialogue experim
Flask项目使用flask-socketio异常:TypeError: function() argument 1 must be code, not str
JS 的 try catch finally 中 return 的执行顺序
How to package the parsed Excel data into objects and write this object set into the database?
Ansible reports an error: "MSG": "invalid/incorrect password: permission denied, please try again“
第一篇论文的写作流程
JS also exports Excel
2.证券投资基金的概述
Leetcode(417)——太平洋大西洋水流问题
DBSync新增对MongoDB、ES的支持
最全常用高数公式