You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

紫外光下纸币图像转RGB的图像处理优化方案问询

紫外光纸币图像转RGB实现面额识别问题

问题背景

我有一组紫外光下拍摄的纸币图像数据集,需要通过图像处理将其转换为RGB格式,以此实现纸币面额(20、50、100等)的识别。由于项目将部署在硬件设备上,为保证运行效率与速度,不打算通过开关紫外灯的方式获取RGB图像。

已实现的图像处理函数

我已经编写了用于调整对比度、色温(warmth)和色调(tint)的代码:

def change_contrast(img, level):
    factor = (259 * (level + 255)) / (255 * (259 - level))
    def contrast(c):
        return 128 + factor * (c - 128)
    return img.point(contrast)

def adjust_warmth(image, warmth_factor):
    b, g, r = cv2.split(image)
    
    r = cv2.add(r, int(warmth_factor))  # 增加红色通道
    b = cv2.subtract(b, int(warmth_factor))  # 减少蓝色通道

    warmed_image = cv2.merge([b, g, r])
    return np.clip(warmed_image, 0, 255).astype(np.uint8)

def adjust_tint(image, tint_factor):
    tinted_image = np.zeros_like(image)
    
    # 增减各通道值
    tinted_image[:, :, 0] = cv2.add(image[:, :, 0], int(tint_factor))  # 蓝色通道
    tinted_image[:, :, 1] = cv2.add(image[:, :, 1], int(tint_factor))  # 绿色通道
    tinted_image[:, :, 2] = cv2.add(image[:, :, 2], int(tint_factor))  # 红色通道
    
    return np.clip(tinted_image, 0, 255).astype(np.uint8)

当前处理效果与代码

我已进行示例处理,但目前的效果无法还原纸币的原始颜色:

  • 原始紫外图像:原始紫外纸币图像
  • 当前处理后图像:当前处理结果

使用的处理代码如下:

new_image = change_contrast(Image.open('20-f.jpg'), 50)
new_image = new_image.rotate(90)

new_image_np = np.array(new_image)
img3_warmth = adjust_warmth(new_image_np, -25)
img3_tint = adjust_tint(img3_warmth, -35)

fig = plt.figure(figsize=(12,12))
ax = fig.add_subplot(111)
ax.imshow(img3_tint)
plt.show()

期望目标

希望达到的图像效果如下:目标RGB纸币图像


内容的提问来源于stack exchange,提问作者ANAXA GORAS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 06:46:17