当前位置: 首页 > news >正文

加强版第十二章 开闭操作

开操作=腐蚀+膨胀

开操作---删除小的干扰块

morphologyEx(binary,dst,op(相关形态学操作),kernel,Point(-1,-1),1(连续开操作))



#include<opencv2/opencv.hpp>
#include<iostream>
using namespace  cv;
using namespace  std;
int main(int argc, char** argv)
{
    Mat src = imread("C:/newword/image/14.png");
        if (src.empty()) {
            printf("no");
            return -1;
        }
        Mat srv, srb,tc;
        cvtColor(src, srv, COLOR_BGR2GRAY);
        //threshold(srv, srb, 0, 255, THRESH_BINARY || THRESH_OTSU);
        imshow("skb", srv);
        Mat kernel = getStructuringElement(MORPH_RECT, Size(5, 5), Point(-1, -1));
        morphologyEx(srv, tc, MORPH_OPEN, kernel, Point(-1, -1), 1);
        //erode(srv, srv, kernel);
        imshow("skb1", tc);
        dilate(srv, srv, kernel);
        imshow("skb2", srv);


        waitKey(0);
    return 0;

}

原有结构保持不变,删除小的干扰点



#include<opencv2/opencv.hpp>
#include<iostream>
using namespace  cv;
using namespace  std;
int main(int argc, char** argv)
{
    Mat src = imread("C:/newword/image/15.png");
        if (src.empty()) {
            printf("no");
            return -1;
        }
        Mat srv, srb,tc;
        cvtColor(src, srv, COLOR_BGR2GRAY);
        threshold(srv, srb, 0, 255, THRESH_BINARY_INV(背景转为黑色) | THRESH_OTSU);
        imshow("skb", srb);
        Mat kernel = getStructuringElement(MORPH_ELLIPSE, Size(5, 5), Point(-1, -1));
        morphologyEx(srb, tc, MORPH_OPEN, kernel, Point(-1, -1), 1);
        //erode(srv, srv, kernel);
        imshow("skb1", tc);
        dilate(srv, srv, kernel);
        imshow("skb2", srv);


        waitKey(0);
    return 0;

}

更加突出


闭操作=膨胀加腐蚀

闭操作-------填充闭合区域

morphologyEx(binary,dst,op(相关形态学操作),kernel,Point(-1,-1),1(连续开操作))



#include<opencv2/opencv.hpp>
#include<iostream>
using namespace  cv;
using namespace  std;
int main(int argc, char** argv)
{
    Mat src = imread("C:/newword/image/14.png");
        if (src.empty()) {
            printf("no");
            return -1;
        }
        Mat srv, srb,tc;
        cvtColor(src, srv, COLOR_BGR2GRAY);
        //threshold(srv, srb, 0, 255, THRESH_BINARY || THRESH_OTSU);
        imshow("skb", srv);
        Mat kernel = getStructuringElement(MORPH_RECT, Size(13, 13), Point(-1, -1));
        morphologyEx(srv, tc, MORPH_CLOSE, kernel, Point(-1, -1), 1);
        //erode(srv, srv, kernel);
        imshow("skb1", tc);
        dilate(srv, srv, kernel);
        imshow("skb2", srv);


        waitKey(0);
    return 0;

}


http://www.mrgr.cn/news/79608.html

相关文章:

  • javaWeb之过滤器(Filter)
  • python及pycharm安装配置
  • 大数据笔记之flink-cdc实时同步数据
  • 【Neo4J】neo4j docker容器下的备份与恢复
  • Rerender A Video 技术浅析(五):对象移除与自动配色
  • 【大前端vue:组件】vue鼠标滑动:平滑滚动效果 向左、向右
  • 协程设计原理与实现
  • QT 多级嵌套结构体,遍历成员--半自动。<模板+宏定义>QTreeWidget树结构显示
  • 我们来学mysql -- 事务并发之不可重复读(原理篇)
  • Text2SQL(NL2sql)对话数据库:设计、实现细节与挑战
  • 【论文阅读】相似误差订正方法在风电短期风速预报中的应用研究
  • NanoLog起步笔记-7-log解压过程初探
  • 【开源】A063—基于Spring Boot的农产品直卖平台的设计与实现
  • Vue3小兔鲜电商项目
  • 【人工智能基础08】卷积神经网络习题:卷积神经网络计算、图像填充、卷积的表达与设计
  • 【优选算法 位运算】位运算算法入门详解:位运算小专题
  • 分布式架构
  • 使用mmdeploy框架C++预测mask并绘制最小外接矩形
  • 排序算法(1):冒泡排序
  • STM32F103 FPGA进行通信方式
  • 第四十六篇 Vision Transformer论文翻译
  • 【开源】A065—基于SpringBoot的库存管理系统的设计与实现
  • java中的抽象类
  • Redis安装和Python练习(Windows11 + Python3.X + Pycharm社区版)
  • 人工智能大模型LLM开源资源汇总(持续更新)
  • 【光电倍增管】-打拿极 PMT