09 OpenCV图像的形态学运算

文章目录

形态学处理

算子

形态学算子

c 复制代码
void morphologyEx( InputArray src, OutputArray dst,int op, InputArray kernel,Point anchor = Point(-1,-1), int iterations = 1,int borderType = BORDER_CONSTANT,const Scalar& borderValue = morphologyDefaultBorderValue() );
/*******************************************************************
*			src: 					输入图像
*			dst:					输出图像
*			op:						 操作类型
*			kernel:					 操作的核
*					参数为0:中心3*3的核
*			anchor:					锚点
*					(-1,-1):表示位于中心
*			iterations:				 迭代的次数
*			borderType:				 图像外部像素的某种边界模式
*			borderValue:			 边界值,一般不管
*********************************************************************/
//操作类型
enum MorphTypes{
    MORPH_ERODE    = 0, //腐蚀
    MORPH_DILATE   = 1, //膨胀
    MORPH_OPEN     = 2, //开操作
    MORPH_CLOSE    = 3, //闭操作
    MORPH_GRADIENT = 4, //梯度操作
    MORPH_TOPHAT   = 5, //顶帽操作
    MORPH_BLACKHAT = 6, //黑帽操作
    MORPH_HITMISS  = 7  //随机操作,只支持CV_8UC1模式
}

获取图像结构元素

c 复制代码
Mat getStructuringElement(int shape, Size ksize, Point anchor = Point(-1,-1));
/*******************************************************************
*			shape: 					形状类型
*			ksize:					大小
*			anchor:					锚点
*					(-1,-1):表示位于中心
*********************************************************************/
//shape取值
enum MorphShapes {
    MORPH_RECT    = 0, //矩形
    MORPH_CROSS   = 1, //十字交叉
    MORPH_ELLIPSE = 2  //椭圆                   
};

示例

c 复制代码
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;


int main()
{
	Mat src = imread("test.jpg");//读取图片
	if (src.empty())
	{
		cout << "could not load img...";
		return -1;
	}
	namedWindow("test");//设置窗口名称
	imshow("test", src);
	Mat dst;
	Mat kernel = getStructuringElement(MORPH_RECT, Size(11, 11), Point(-1, -1));
	morphologyEx(src, dst, MORPH_OPEN, kernel);
	imshow("output", dst);

	waitKey(0);
	return 0;
}
相关推荐
NAGNIP7 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab9 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab9 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP12 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年12 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼13 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS13 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区14 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈14 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang15 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx