opencv 形态转化(会了这个,不用怕了)

今天记录的是形态转换的几个,开盘,闭幕,形态梯度,顶帽,黑帽。

让我们先了解他们的概念:

 

 

 

 

 

 

 

上代码:

// opencv0012.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <opencv2/opencv.hpp>
#include <math.h>

using namespace std;
using namespace cv;

Mat src, dst;
int morph_elem = 0;
int morph_size = 0;
int morph_operator = 0;
int const max_operator = 4;
int const max_elem = 2;
int const max_kernel_size = 21;
const char * window_name = "Morphology Transformations Demo";

void Morphology_Operator(int, void*);

int main()
{
	string imageName = "D:/images/41.jpg";
	src = imread(imageName, IMREAD_COLOR);
	if (src.empty())
	{
		cout << "资源为空,请检查图片以及路径" << endl;
		return -1;
	}
	namedWindow(window_name, WINDOW_NORMAL); 
	createTrackbar("Operator:\n 0: Opening - 1: Closing  \n 2: Gradient - 3: Top Hat \n 4: Black Hat", window_name,
		&morph_operator,max_operator, Morphology_Operator);
	createTrackbar("Element:\n 0: Rect - 1: Cross - 2: Ellipse", window_name,
		&morph_elem, max_elem,
		Morphology_Operator);
	createTrackbar("Kernel size:\n 2n +1", window_name,
		&morph_size, max_kernel_size,
		Morphology_Operator);
	Morphology_Operator(0, 0);

	waitKey(0);

    return 0;
}

void Morphology_Operator(int, void *)
{
	int operation = morph_operator + 2;
	Mat element = getStructuringElement(morph_elem,Size(2 * morph_size + 1,
		2 * morph_size +1),Point(morph_size, morph_size));
	morphologyEx(src, dst, operation, element);
	imshow(window_name, dst);
}

 

代码解释:

第一个跟踪栏操作返回要使用的形态学操作(morph_operator)。

createTrackbar(“Operator:\ n 0:Opening  -  1:Closing \ n 2:Gradient  -  3:Top Hat \ n 4:Black Hat”,window_name,&morph_operator,max_operator,Morphology_Operations);

 

第二个trackbar 元素返回morph_elem,它表示我们的内核是什么样的结构:

createTrackbar( "Element:\n 0: Rect - 1: Cross - 2: Ellipse", window_name,
                  &morph_elem, max_elem,
                  Morphology_Operations );

最终的trackbar 内核大小返回要使用的内核的大小(morph_size

createTrackbar( "Kernel size:\n 2n +1", window_name,
                  &morph_size, max_kernel_size,
                  Morphology_Operations );

 

 

 

 原图:

 

该变值的图片:

 

可以调动这个滑块,分别看看效果图,这里就不多展示了,希望大家多多了解。一起开心学习。 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值