• 一维码和二维码图像优化——提高读码率


    1.算子

    1.1 decompose3 (彩色图像分割算子)

    算子:decompose3 ——将三通道图像转换为三个图像
    函数原型:decompose3(MultiChannelImage : Image1, Image2, Image3 : : )

    功能:将3通道图像转换为具有相同定义域(ROI)的三个单通道图像。
    参数:
    MultiChannelImage (input_object) ——多通道图像
    Image1 (output_object) ——输出图像1
    Image2 (output_object) ——输出图像2
    Image3 (output_object) ——输出图像3

    1.2scale_image (缩放或扩大图像的灰度值算子)

    函数原型:scale_image(Image : ImageScaled : Mult, Add : )

    功能:拉开图像的对比度,让图像中黑的地方更黑,亮的地方更亮。
    参数:
    Image (input_object) ——输入图像
    ImageScaled (output_object) ——输出缩放后的图像
    Mult(input_object) ——输入所乘的系数
    Add (input_object) ——输入加的偏移值

    1.3 emphasize (图像增强)

    函数原型:emphasize(Image : ImageEmphasize : MaskWidth, MaskHeight, Factor : )

    功能:增强图像的高频区域(边缘和拐角)的对比度,使图像看起来更清晰。
    参数:
    Image (input_object) ——输入图像
    ImageEmphasize (output_object) ——输出处理后的图像
    MaskWidth(input_object) ——输入控均值滤波均值滤波均值滤波模板的大小
    MaskHeight(input_object) ——输入控制均值滤波模板的大小

    Factor (input_object) ——输入对比强调的强度

    1.4 zoom_image_factor(按给定因子缩放图像)

    函数原型:zoom_image_factor(Image : ImageZoomed : ScaleWidth, ScaleHeight, Interpolation : )

    功能:把图像缩放到指定比例大小
    参数:
    Image (input_object) ——输入图像
    ImageZoomed (output_object) ——输出处理后的图像
    ScaleWidth(input_object) ——输入宽度反向的比例,默认0.5,典型值范围【 0.001 ≤ ScaleWidth ≤ 10.0】,最小增量0.001
    ScaleHeight(input_object) ——输入高度反向的比例,默认0.5,典型值范围【 0.001 ≤ ScaleHeight≤ 10.0】,最小增量0.001

    Interpolation (input_object) ——输入插值的类型 。默认'constant',列表【 'bilinear'双线性插值, 'constant'等权双线性插值法, 'nearest_neighbor'最近邻插值, 'weighted'高斯加权双线性插值法】

    2.实例代码

    下面代码是一维码图像优化,并读取一维码的实例:

    1. read_image (Image, 'D:/kaycee_yu/Desktop/20231107141225484.bmp')
    2. gen_rectangle1 (Rectangle, 3376.81, 2042.71, 4113.43, 3368.12)
    3. reduce_domain (Image, Rectangle, Image)
    4. *优化条码图像
    5. decompose3 (Image, Image1, Image2, Image3)
    6. scale_image (Image1, ImageScaled, 3, -300)
    7. emphasize (ImageScaled, ImageEmphasize, 9, 9, 1)
    8. dev_display (ImageEmphasize)
    9. zoom_image_factor (ImageEmphasize, ImageZoomed, 0.5, 0.5, 'constant')
    10. dev_display (ImageZoomed)
    11. *创建条码模型
    12. create_bar_code_model ([], [], BarCodeHandle)
    13. find_bar_code (ImageZoomed, SymbolRegions1, BarCodeHandle, ['Code 128'], BarCodeStrings)
    14. *清除条码模型
    15. clear_bar_code_model (BarCodeHandle)
    16. stop ()

    下图为处理前和处理后的图片,处理前读码读取不全,处理后可以读取。

    结语:本篇文章主要记载优化条码图像的算子和实例。

  • 相关阅读:
    JavaScript 中的一些奇怪问题
    探索以太坊 Layer 2 解决方案的后起之秀——Starknet
    【vue】牛客专题训练02
    Linux系统编程-C++ I/O库
    Python自动化办公小程序:实现报表自动化和自动发送到目的邮箱
    TCP为什么需要3次握手?
    FFmpeg入门详解之121:颜色空间转换RGB和YUV的原理与实战
    【前端】CSS(1) —— CSS的基本语法和一些简单的选择器
    ES6 Set数据结构
    设计模式-组合模式Composite(结构型)
  • 原文地址:https://blog.csdn.net/qq_42711010/article/details/134291064