IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> zbar下条形码和二维码的识别与解码Ⅱ|2021SC@SDUSC -> 正文阅读

[人工智能]zbar下条形码和二维码的识别与解码Ⅱ|2021SC@SDUSC

2021SC@SDUSC

高斯滤波处理(消除高斯噪声)

Mat MyClass::getGass(Mat image, bool show){
     Mat cimage;
     GaussianBlur(image, cimage, Size(3, 3), 0);
     if (show)
     imshow("高斯滤波图", cimage);
     return cimage;
 }

处理结果:

?Sobel x-y差处理(只考虑x轴,消除y轴不必要信息):

 Mat MyClass::getSobel(Mat image, bool show){
     Mat cimageX16s, cimageY16s, imageSobelX, imageSobelY, out;
     Sobel(image, cimageX16s, CV_16S, 1, 0, 3, 1, 0, 4);
     Sobel(image, cimageY16s, CV_16S, 0, 1, 3, 1, 0, 4);
     convertScaleAbs(cimageX16s, imageSobelX, 1, 0);
     convertScaleAbs(cimageY16s, imageSobelY, 1, 0);
     out = imageSobelX - imageSobelY;
     if (show)
     imshow("Sobelx-y差 图", out);
     return out;
 }

处理结果:

?均值滤波处理(消除高频噪声)

Mat MyClass::getBlur(Mat image, bool show){
      Mat cimage;
      blur(image, cimage, Size(3, 3));
      if (show)
      imshow("均值滤波图", cimage);
      return cimage;
  }

?处理结果:

?

二值化处理(使图像中数据量大为减少,从而能凸显出目标的轮廓)

Mat MyClass::getThold(Mat image, bool show){
     Mat cimage;
     threshold(image, cimage, 112, 255, CV_THRESH_BINARY);
     if (show)
     imshow("二值化图", cimage);
     return cimage;
 }

处理结果:

?闭运算处理(扩大轴之间的间隙)

Mat MyClass::getBys(Mat image, bool show){
     morphologyEx(image, image, MORPH_CLOSE, element);
     if (show)
     imshow("闭运算图", image);
     return image;
 }

处理结果:

?腐蚀膨胀(消去干扰点和合并条码区域)

 Mat MyClass::getErode(Mat image, bool show){
     //Mat cimage;
     erode(image, image, element);
     if (show)
     imshow("腐蚀图", image);
     return image;
 }

 Mat MyClass::getDilate(Mat image, bool show){
     for (int i = 0; i < 3; i++)
         dilate(image, image, element);
     if (show)
     imshow("膨胀图", image);
     return image;
 }

处理结果:

?

?

获取ROI(为Zbar处理作预处理)

Mat MyClass::getRect(Mat image, Mat simage, bool show){
    vector<vector<Point>> contours;
    vector<Vec4i> hiera;
    Mat cimage;
    findContours(image, contours, hiera, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE);
    vector<float>contourArea;
    for (int i = 0; i < contours.size(); i++)
    {
        contourArea.push_back(cv::contourArea(contours[i]));
    }
    //找出面积最大的轮廓
    double maxValue; Point maxLoc;
    minMaxLoc(contourArea, NULL, &maxValue, NULL, &maxLoc);
    //计算面积最大的轮廓的最小的外包矩形
    RotatedRect minRect = minAreaRect(contours[maxLoc.x]);
    //为了防止找错,要检查这个矩形的偏斜角度不能超标
    //如果超标,那就是没找到
    if (minRect.angle<2.0)
    {
        //找到了矩形的角度,但是这是一个旋转矩形,所以还要重新获得一个外包最小矩形
        Rect myRect = boundingRect(contours[maxLoc.x]);
        //把这个矩形在源图像中画出来
        //rectangle(srcImage,myRect,Scalar(0,255,255),3,LINE_AA);
        //看看显示效果,找的对不对
        //imshow(windowNameString,srcImage);
        //将扫描的图像裁剪下来,并保存为相应的结果,保留一些X方向的边界,所以对rect进行一定的扩张
        myRect.x = myRect.x - (myRect.width / 20);
        myRect.width = myRect.width*1.1;
        Mat resultImage = Mat(srcimage, myRect);
        return resultImage;
    }

    for (int i = 0; i<contours.size(); i++)
    {
        Rect rect = boundingRect((Mat)contours[i]);
        //cimage = simage(rect);
        rectangle(simage, rect, Scalar(0), 2);
        if (show)
        imshow("转变图", simage);
    }
    return simage;
}

?处理结果:

最后识别处理结果:

?

?

?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-19 11:52:51  更:2021-10-19 11:54:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 8:38:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码