OpenCV实现直线检测并消除
作者:Leonwenbin 时间:2023-07-12 20:44:36
本文实例为大家分享了OpenCV实现直线检测并消除的具体代码,供大家参考,具体内容如下
很简单,代码如下
#include<iostream>
#include<opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
Mat img, dst, img_gary, img_bin, temp, r_line, c_line, kernel;
char INPUT[] = "input";
char OUTPUT[] = "output";
char GRAY_IMG[] = "gary image";
char BIN_IMG[] = "binary image";
char DST_IMG[] = "final image";
img = imread("D:\\OpenCV\\images\\demo_test_2.jpg");
if (img.empty())
{
cout << "image loading failed..." << endl;
return -1;
}
namedWindow(INPUT, WINDOW_AUTOSIZE);
imshow(INPUT, img);
cvtColor(img, img_gary, COLOR_BGR2GRAY);
imshow(GRAY_IMG, img_gary);
adaptiveThreshold(~img_gary, img_bin, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 15, -2);
imshow(BIN_IMG, img_bin);
//水平结构元素
r_line = getStructuringElement(MORPH_RECT, Size(img.cols / 16, 1), Point(-1, -1));
//垂直结构元素
c_line = getStructuringElement(MORPH_RECT, Size(1, img.rows / 16), Point(-1, -1));
kernel = getStructuringElement(MORPH_RECT, Size(4, 4), Point(-1, -1));
erode(img_bin, temp, kernel);
dilate(temp, dst, kernel);
//erode(img_bin, temp, r_line);
//dilate(temp, dst, r_line);
//morphologyEx(img_bin, dst, MORPH_OPEN, c_line);
bitwise_not(dst, dst);
//blur(dst, dst, Size(3, 3), Point(-1, -1));
imshow(DST_IMG, dst);
waitKey(0);
return 0;
}
放几张效果图
原图
处理结果
来源:https://blog.csdn.net/weixin_43788499/article/details/84981528
标签:OpenCV,检测,消除
0
投稿
猜你喜欢
Flutter Widgets之标签类控件Chip详解
2023-06-26 14:22:35
基于Java数组实现循环队列的两种方法小结
2023-06-30 16:09:01
详解Flutter桌面应用如何进行多分辨率适配
2023-06-17 07:14:59
C++实现LeetCode(2.两个数字相加)
2023-06-23 16:51:11
Android+SQLite数据库实现的生词记事本功能实例
2023-06-18 10:41:35
idea创建SpringBoot项目时Type选maven project和maven pom有何区别
2023-07-04 07:20:27
C语言头文件<string.h>函数详解
2023-07-01 18:59:34
VSCode 搭建 Arm 远程调试环境的步骤详解
2023-06-27 08:54:36
springcloud feign传输List的坑及解决
2023-06-20 18:31:57
java 进制转换实例详解
2023-07-05 11:53:45
flutter轮子计划之进度条
2023-06-21 07:59:39
Flutter开发中的路由参数处理
2023-06-21 04:27:48
通过Docker启动Solace并在Spring Boot通过JMS整合Solace的操作方法
2023-07-11 09:52:28
OpenCV图像旋转Rotate的详细介绍
2023-07-01 08:22:27
Flutter实现抽屉动画
2023-06-18 01:49:19
解析Android 8.1平台SystemUI 导航栏加载流程
2023-06-23 15:21:21
Java进阶:Struts多模块的技巧
2023-06-18 09:40:47
OpenCV实现直线拟合
2023-06-22 15:22:37
Android Flutter实现搜索的三种方式详解
2023-07-10 18:00:49
替换so文件来动态替换Flutter代码实现详解
2023-06-23 16:24:06