【OpenCV小练手】-仿造验证码去除干扰因子

🤖🤖🤖🤖 欢迎浏览本博客 🤖🤖🤖🤖
😆😆😆😆😆😆😆我是:我菜就爱学😆😆😆😆😆😆😆一名刚刚入行OpenCV的小白👻👻👻👻
🔔🔔我菜就爱学,分享有误,欢迎大佬指出🔔🔔

最近这几天一直在回顾OpenCV的相关知识点,也算是做一次简单的总结的吧。这次小项目主要是针对 形态学应用知识点做的回顾。首先是提取图像中的水平线和垂直线,然后利用类似原理,可以消除验证码上面的干扰项。

操作步骤:

  • 1、读取图像
  • 2、转换为灰度图
  • 3、装换为二值图
  • 4、定义水平结构原始和垂直结构元素
  • 5、对图像处理:先腐蚀再膨胀(开运算)
  • 6、再来一个反转,把背景改成白的
  • 7、利用blur滤波,让图像更美观

如下,首先提取下面图像的水平线:

【OpenCV小练手】-仿造验证码去除干扰因子

1、读取图像

Mat src, dst,grayImage;
    src = imread("E:\\Pec\\形态学应用1.jpg");
    namedWindow("原图", WINDOW_AUTOSIZE);
    imshow("原图", src);
    if (src.empty())
    {
        printf("图片读取错误!\n");
    }

2、转换为灰度图


    cvtColor(src, grayImage, COLOR_BGR2GRAY);

3、装换为二值图


    Mat threImage;
    adaptiveThreshold(grayImage, threImage, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 15, -2);
    imshow("ee图", threImage);

4、定义水平结构原始和垂直结构元素


    Mat hkernel = getStructuringElement(MORPH_RECT, Size(src.cols / 16, 1), Point(-1, -1));

    Mat wkernel = getStructuringElement(MORPH_RECT, Size(1, src.rows/16), Point(-1, -1));

5、对图像处理:先腐蚀再膨胀(开运算)

Mat eImage, dImage;
    erode(threImage, eImage, wkernel);
    dilate(eImage, dImage,wkernel);

6、再来一个反转,把背景改成白的

bitwise_not(dImage,dImage);

7、利用blur滤波,让图像更美观

blur(dImage, dImage, Size(3, 3), Point(-1, -1));
    imshow("提取水平线", dImage);

效果如下:

【OpenCV小练手】-仿造验证码去除干扰因子
【OpenCV小练手】-仿造验证码去除干扰因子

; 验证码去除干扰项

假设验证码的图片如下所示:

【OpenCV小练手】-仿造验证码去除干扰因子

; 程序代码

#include
#include
using namespace std;
using namespace cv;
int main()
{
    Mat src, dst,grayImage;
    src = imread("E:\\Pec\\形态学应用2.jpg");
    imshow("假设验证码图", src);
    if (src.empty())
    {
        printf("图片读取错误!\n");
    }

    cvtColor(src, grayImage, COLOR_BGR2GRAY);

    Mat threImage;
    adaptiveThreshold(grayImage, threImage, 255, ADAPTIVE_THRESH_GAUSSIAN_C, THRESH_BINARY_INV, 17, 2);
    Mat kernel = getStructuringElement(MORPH_RECT, Size(5, 5), Point(-1, -1));
    Mat eimage, dimage;
    erode(threImage, eimage, kernel);
    dilate(eimage, dimage,kernel);
    imshow("验证码去除干扰项", dimage);
    waitKey(0);
    return 0;
}

【OpenCV小练手】-仿造验证码去除干扰因子

Original: https://blog.csdn.net/qq_44859533/article/details/126564095
Author: 我菜就爱学
Title: 【OpenCV小练手】-仿造验证码去除干扰因子

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/705209/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球