对图像进行加雾化处理,增加训练样本

本文参考特定代码实现雾化效果,但原博主代码效果不佳,因此进行了更改。代码基于Python和OpenCV,属于计算机视觉领域。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import cv2, math
import numpy as np

def AddHaze1(img):
    # img_f = img           # 保存文件用这行    
    img_f = img / 255.0     # 对原博主的代码进行了更改,这是显示时的样子
    (row, col, chs) = img.shape

    A = 0.5  # 亮度
    beta = 0.08  # 雾的浓度
    size = math.sqrt(max(row, col))  # 雾化尺寸
    center = (row // 2, col // 2)  # 雾化中心
    for j in range(row):
        for l in range(col):
            d = -0.04 * math.sqrt((j - center[0]) ** 2 + (l - center[1]) ** 2) + size
            td = math.exp(-beta * d)
            img_f[j][l][:] = img_f[j][l][:] * td + A * (1 - td)
    return img_f

def AddHaze2(img):
    img_h =img/255.0            # 对原博主的代码进行了更改
    A = np.random.uniform(0.6, 0.95)
    t = np.random.uniform(0.3, 0.95)
    img_h = img_h * t + A * (1 - t)

    return img_h

def AddHaze(img):
    l = np.random.uniform(0, 1)
    if l > 0.7:
        img_T = AddHaze1(img)
    else:
        img_T = AddHaze2(img)
    return img_T

if __name__ == '__main__':
    resize_jpg_path = r'F:\数据集/image/2.jpg'
    img = cv2.imdecode(np.fromfile(resize_jpg_path, dtype=np.uint8), flags=-1)
    cv2.imshow("src", img)
    img_wuhua=AddHaze(img)
    cv2.imshow("test",img_wuhua)
    cv2.waitKey(1000)
    if 1 == cv2.waitKey(0):
        pass

本文参考的代码来源于https://blog.youkuaiyun.com/An_dy_code/article/details/111031999

不过按着原博主的代码,雾化后的结果,看不出来,所以进行了更改。

效果如下:

 

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值