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);            




相关推荐
编码小哥3 分钟前
通过opencv加载、保存视频
人工智能·opencv
发呆小天才O.oᯅ10 分钟前
YOLOv8目标检测——详细记录使用OpenCV的DNN模块进行推理部署C++实现
c++·图像处理·人工智能·opencv·yolo·目标检测·dnn
西猫雷婶21 分钟前
python学opencv|读取图像(十六)修改HSV图像HSV值
开发语言·python·opencv
pchmi1 小时前
C# OpenCV机器视觉:模板匹配
opencv·c#·机器视觉
腾空烈鹰1 小时前
OpenCV putText增加中文支持
opencv·puttext 中文显示
Byron Loong2 小时前
Python+OpenCV系列:【打卡系统-需求分析】需求大剖析,考勤革命开启!
python·opencv·需求分析
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭3 小时前
C#都可以找哪些工作?
开发语言·c#
编码小哥3 小时前
深入解析Mat对象:计算机视觉中的核心数据结构
opencv·计算机视觉
Byron Loong4 小时前
Python+OpenCV系列:【打卡系统-工具模块设计】工具模块深度揭秘,考勤智能化的核心秘籍!
python·opencv·webpack
boligongzhu4 小时前
Dalsa线阵CCD相机使用开发手册
c#