10 OpenCV 形态学的应用

算子

adaptiveThreshold 二值化算子

adaptiveThreshold(src, dst=None,maxValue, adaptiveMethod, thresholdType, blockSize, C, )
/*
*src:灰度化的图片
*dst:输出图像,可选
*maxValue:满足条件的像素点需要设置的灰度值
*adaptiveMethod:自适应方法。有2种:ADAPTIVE_THRESH_MEAN_C 或 ADAPTIVE_THRESH_GAUSSIAN_C
*thresholdType:二值化方法,可以设置为THRESH_BINARY或者THRESH_BINARY_INV
*blockSize:分割计算的区域大小,取奇数
* C:常数,每个区域计算出的阈值的基础上在减去这个常数作为这个区域的最终阈值,可以为负数

*/

形态学提取直线示例

想法:把获取二值化的图片轮廓,对直线进行开闭运算

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
int main() {
	Mat src, dst;
	src = imread("chars.png");
	if (!src.data) {
		printf("could not load image...\n");
		return -1;
	}

	char INPUT_WIN[] = "input image";
	char OUTPUT_WIN[] = "result image";
	namedWindow(INPUT_WIN);
	imshow(INPUT_WIN, src);

	Mat gray_src;
	cvtColor(src, gray_src, CV_BGR2GRAY);
	imshow("gray image", gray_src);
	
	Mat binImg;
	adaptiveThreshold(gray_src, binImg, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 15, -2);
	imshow("binary image", binImg);

	// 水平结构元素
	Mat hline = getStructuringElement(MORPH_RECT, Size(src.cols / 16, 1), Point(-1, -1));
	// 垂直结构元素
	Mat vline = getStructuringElement(MORPH_RECT, Size(1, src.rows / 16), Point(-1, -1));
	

	Mat temp;
	erode(binImg, temp, hline );
	dilate(temp, dst, hline );
	// morphologyEx(binImg, dst, CV_MOP_OPEN, vline);
	bitwise_not(dst, dst);
	//blur(dst, dst, Size(3, 3), Point(-1, -1));
	imshow("Final Result", dst);

	waitKey(0);
	return 0;
}

在这里插入图片描述
在这里插入图片描述

相关推荐

  1. opencv获取形态学卷积核

    2024-03-10 17:30:04       44 阅读
  2. OpenCV高级应用

    2024-03-10 17:30:04       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-10 17:30:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-10 17:30:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-10 17:30:04       82 阅读
  4. Python语言-面向对象

    2024-03-10 17:30:04       91 阅读

热门阅读

  1. 深入理解nginx负载均衡round-robin算法

    2024-03-10 17:30:04       41 阅读
  2. workflow系列教程(9)wfrest之mysql任务

    2024-03-10 17:30:04       35 阅读
  3. vue,provide和inject,备忘

    2024-03-10 17:30:04       46 阅读
  4. 硬件设计中数据运算相关处理方法

    2024-03-10 17:30:04       37 阅读
  5. SpringBoot集成自然语言处理hanlp工具包

    2024-03-10 17:30:04       39 阅读
  6. 【Json学习】singbox配置解析

    2024-03-10 17:30:04       41 阅读
  7. 计算机等级考试:信息安全技术 知识点五

    2024-03-10 17:30:04       37 阅读
  8. redis安装

    2024-03-10 17:30:04       39 阅读
  9. Django请求与响应

    2024-03-10 17:30:04       42 阅读
  10. Linux信号

    2024-03-10 17:30:04       29 阅读