Halcon emphasize函数原理解读

Halcon emphasize函数原理解读

参考Halcon帮助中对于该函数的解释,可以看到:

emphasize(Image : ImageEmphasize : MaskWidth, MaskHeight, Factor : )

意为:指定需要增强的图片Image,以及增强后图片的名称替代ImageEmphasize,以及用一个多大多少对比度因子的 内核? 去增强你的原图

而这个 内核 需要干的事情,帮助中这么写到:

res := round((orig - mean) * Factor) + orig

我的理解是:新的像素值res 等于 原始图像该点的像素值 减去 对内核大小范围内所有点的像素值的平均像素值,然后对这个结果近似取整(可以有负值),再把这个值加上原来这点的像素值,得到这个最终结果去替换原来这点的像素值。

因此,如果实践一下就会发现,这个步骤其实,就是让点之间像素值的差异放大,从而起到增强对比度的效果。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用[1]和引用,我们可以使用Python中的OpenCV库来实现类似于Halcon中的emphasize函数的图像增强功能。具体步骤如下: 1. 导入OpenCV库 ```python import cv2 ``` 2. 定义函数emphasize,该函数接受三个参数:原始图像、增强后的图像和掩膜的宽度、高度和增强因子。 ```python def emphasize(src, dst, mask_width, mask_height, factor): # 获取图像的宽度和高度 height, width = src.shape[:2] # 定义掩膜的大小 mask_size = (mask_width, mask_height) # 对原始图像进行均值滤波 blur = cv2.blur(src, mask_size) # 计算原始图像和均值滤波后的图像之间的差异 diff = cv2.absdiff(src, blur) # 将差异乘以增强因子 diff = diff * factor # 将增强后的图像设置为原始图像加上差异 dst = src + diff # 对增强后的图像进行截断操作,将像素值限制在0到255之间 dst = cv2.threshold(dst, 0, 255, cv2.THRESH_TRUNC)[1] return dst ``` 3. 调用函数emphasize对图像进行增强 ```python # 读取原始图像 src = cv2.imread('input.jpg') # 创建增强后的图像 dst = src.copy() # 对图像进行增强 dst = emphasize(src, dst, 5, 5, 1.5) # 显示原始图像和增强后的图像 cv2.imshow('Input', src) cv2.imshow('Output', dst) cv2.waitKey(0) cv2.destroyAllWindows() ``` 在上述代码中,我们首先读取了一张名为input.jpg的图像作为原始图像,然后创建了一个与原始图像大小相同的图像dst作为增强后的图像。接着,我们调用函数emphasize对原始图像进行增强,并将增强后的图像保存在dst中。最后,我们使用OpenCV的imshow函数显示原始图像和增强后的图像。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值