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


    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 ()

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

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

  • 相关阅读:
    【Docker】联合探讨Docker:容器化技术的革命性应用
    事务隔离级别的实现原理
    很显然,现在元宇宙、web3.0的关注度,早已超过了区块链
    行泊一体「起跑」
    Macleod薄膜专题设计中高级课程
    python 删除特定字符所在行
    windows上安装MySQL Server.
    MFC:程序的托盘显示
    windows安装docker
    Session会话机制的应用(用户登录)
  • 原文地址:https://blog.csdn.net/qq_42711010/article/details/134291064