Lemonade706 2025-10-18 11:11 采纳率: 0%
浏览 23

halcon动态修改图像亮度对比度

img


有没有可以将金属板表面亮度均匀化啊,求解求解,用的是halcon

  • 写回答

5条回答

  • 阿里嘎多学长 2025-10-18 11:11
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    解决方案

    Halcon 提供了多种方法来修改图像的亮度和对比度。以下是几种常见的方法:

    1. 使用 Gen_HistogramSet_Gamma 函数

    // 获取图像的直方图
    Gen_Histogram(img, histogram);
    
    // 计算图像的平均值和标准差
    Gen_Mean(histogram, mean);
    Gen_StdDev(histogram, stdDev);
    
    // 修改图像的亮度和对比度
    Set_Gamma(img, mean, stdDev);
    

    2. 使用 Gamma 函数

    // 修改图像的亮度和对比度
    Gamma(img, gamma);
    

    3. 使用 Contrast 函数

    // 修改图像的对比度
    Contrast(img, contrast);
    

    4. 使用 Brightness 函数

    // 修改图像的亮度
    Brightness(img, brightness);
    

    注意

    • Gamma 函数用于修改图像的亮度和对比度,参数 gamma 是一个值,范围是 0 到 1 之间。
    • Contrast 函数用于修改图像的对比度,参数 contrast 是一个值,范围是 0 到 1 之间。
    • Brightness 函数用于修改图像的亮度,参数 brightness 是一个值,范围是 0 到 1 之间。

    示例代码

    // 读取图像
    HObject img = ReadImage("metal_board.jpg");
    
    // 修改图像的亮度和对比度
    Gamma(img, 0.5);
    
    // 保存修改后的图像
    WriteImage(img, "modified_image.jpg");
    

    建议

    • 根据实际需求调整 GammaContrastBrightness 函数的参数值。
    • 可以使用 Gen_HistogramSet_Gamma 函数来实现更精确的图像亮度和对比度调整。
    评论

报告相同问题?

问题事件

  • 创建了问题 10月18日