C# OpenCV 通过高度图去筛选轮廓

csharp 复制代码
//输入图像
threshCropMap.ImWrite("D:\\test\\threshCropMap_BeforeFilterByBlob.bmp");
//设定我们要筛选的高度
var ResultHeight = 60;
//创建对应高度的图像,由于是高度信息图,所有要使用32位来存放数据
Mat mat = new Mat(filter.Rows, filter.Cols, MatType.CV_32F, new Scalar(ResultHeight));
mat.ImWrite("D:\\test\\mat.bmp");

Mat ResultMat = new Mat(filter.Rows, filter.Cols, MatType.CV_32F, new Scalar(0));
//将基础图像减去高度图像,将低于指定高度的图像置为负值
Cv2.Subtract(threshCropMap, mat, ResultMat);
ResultMat.ImWrite("D:\\test\\ResultMat.bmp");
//将负值的数值置为0,仅保留大于指定高度的图像
Mat mask = new Mat();
Cv2.Compare(ResultMat, new Scalar(0), mask, CmpType.GT);
mask.ImWrite("D:\\test\\mask.bmp");

 Mat resultMat = new Mat();
ResultMat.CopyTo(resultMat, mask);
//将最终图像转换为8位灰度图,方便后续处理结果
resultMat.ConvertTo(resultMat, MatType.CV_8UC1);
int num = resultMat.CountNonZero();
Point[][] contours;
HierarchyIndex[] hierarchy;
Cv2.FindContours(resultMat, out contours, out hierarchy, RetrievalModes.External, ContourApproximationModes.ApproxSimple);            




相关推荐
dotent·10 小时前
C#基于WPF UI框架的通用基础上位机测试WPF框架
ui·c#·wpf
合作小小程序员小小店10 小时前
桌面开发,超市管理系统开发,基于C#,winform,sql server数据库
开发语言·数据库·sql·microsoft·sqlserver·c#
合作小小程序员小小店12 小时前
桌面开发,在线%超市销售管理%系统,基于vs2022,c#,winform,sql server数据
开发语言·数据库·microsoft·c#
p***323514 小时前
如何使用C#与SQL Server数据库进行交互
数据库·c#·交互
2501_9418072615 小时前
Java高性能消息队列与Kafka实战分享:大规模消息处理、异步通信与性能优化经验
c#·linq
周杰伦fans16 小时前
C# 中的**享元工厂**模式
开发语言·数据库·c#
鹿衔`16 小时前
通过Flink 1.19 客户端实现Flink集群连接 Kafka 基础测试报告
c#·linq
玩泥巴的18 小时前
.NET 8+ 飞书API实战:自动化群组管理与消息推送
c#·.net·二次开发·飞书
烛阴18 小时前
从`new`关键字开始:精通C#类与对象
前端·c#