加雨

1、读取图像

  • img = cv2.imread('demo.jpg')
    

2、根据图像生成随机噪声

  • 生成跟图像相同大小的噪声(均匀分布)

    noise = np.random.uniform(0, 256, img.shape[0:2])
    

  • 控制噪声水平,取浮点数,只保留最大的一部分作为噪声

    v = value * 0.01
    noise[np.where(noise < (256 - v))] = 0
    

  • 噪声做初次模糊(高斯滤波)

    k = np.array([[0, 0.1, 0],[0.1, 8, 0.1],[0, 0.1, 0]])
    noise = cv2.filter2D(noise, -1, k)
    

    返回生成的噪声

3、对噪声加运动模糊

根据仿射变换得到模糊核

#获得仿射变化矩阵,由于对角阵自带45度的倾斜,所以减去了45度,三个参数分别表示:中心点的位置,旋转角度,等比例缩放
trans = cv2.getRotationMatrix2D((length/2, length/2), angle-45, 1-length/100.0)
#生成对角矩阵(雨线的长度)
dig = np.diag(np.ones(length))
#生成模糊核,通过对对角矩阵的仿射变换,得到模糊核,三个参数分别表示为:对角矩阵,仿射变换矩阵,输出的大小
k = cv2.warpAffine(dig, trans, (length, length))

对模糊核进行高斯模糊,使得雨有宽度

k = cv2.GaussianBlur(k, (w, w), 0) #高斯模糊这个旋转后的对角核,使得雨有宽度,高斯矩阵为w*w, 0为方差

将噪声与得到的模糊核进行卷积

blurred = cv2.filter2D(noise, -1, k)
cv2.normalize(blurred, blurred, 0, 255, cv2.NORM_MINMAX)
blurred = np.array(blurred, dtype=np.uint8)

方法一、透明度赋值

rain_result = img.copy()
rain_result[:, :, 0] = rain_result[:, :, 0] * (255 - rain[:, :, 0])/255.0 + beta*rain[:, :, 0]
rain_result[:, :, 1] = rain_result[:, :, 1] * (255 - rain[:, :, 0])/255.0 + beta*rain[:, :, 0]
rain_result[:, :, 2] = rain_result[:, :, 2] * (255 - rain[:, :, 0])/255.0 + beta*rain[:, :, 0]

加雨的结果图为:

方法二、加权

rain = np.expand_dims(rain, 2)
rain = np.repeat(rain, 3, 2)
#加权合成新图
result = cv2.addWeighted(img, alpha, rain, 1-alpha, 1)

得到的雨天图像

epeat(rain, 3, 2)
#加权合成新图
result = cv2.addWeighted(img, alpha, rain, 1-alpha, 1)


得到的雨天图像![addweight](https://img-blog.csdnimg.cn/img_convert/411ec1e333f24f045893453a6cb0dd40.png)

加雨(雨天数据集制作)相关推荐

  1. matlab 数据集制作,机器学习数据集制作与划分MATLAB实现

    .mat数据集制作 若整个数据集是一个.mat文件且最后一列数据时标签,则单独将决策变量和标签划分开,一个为ins,另一个为lab. 相关文章 .mat数据集说明 数据集名称GLIOMA GIOMA包 ...

  2. 【项目实践】基于Mask R-CNN的道路物体检测与分割(从数据集制作到视频测试)...

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 1.内容概要 Mask R-CNN的框架是对Faster R-CNN的扩展,与BBox识别并行的增加一 ...

  3. 深度学习实战(七)——目标检测API训练自己的数据集(R-FCN数据集制作+训练+测试)

    TensorFlow提供的网络结构的预训练权重:https://cloud.tencent.com/developer/article/1006123 将voc数据集转换成.tfrecord格式供te ...

  4. 自制AVA数据集工具/slowfast模型训练数据集制作

    AVA2.1版本更新了追踪这一列. 那2.2版本请参考此链接文章:自定义ava数据集及训练与测试 完整版 时空动作/行为 视频数据集制作 yolov5, deep sort, VIA MMAction ...

  5. 云视频技术领军人赵加雨:如何提升在线教育课堂互动体验

    12月23日,由中国计算机用户协会指导,iTechClub教育专委会主办的"2020中国教育科技大会"在北京盛大开幕.本届教育科技大会以"新业态 · 新动能 · 新教育& ...

  6. 【CV\utils】计算机视觉:视频图像(清洗、裁剪、人脸区域抓取等)数据预处理数据集制作 | 代码合集

    [start:2023.06.15] 文章目录 1. FFmpeg 1.1. 下载 1.2. 万能观影 1.3. 拷贝视频 1.4. 裁剪视频 1.5. 横向拼接视频 2. OpenCV 2.1. 安 ...

  7. 图像分割 | FCN数据集制作的全流程(图像标注)

    图像分割 | FCN数据集制作的全流程(图像标注) 一 全卷积神经网络 文章所有代码已上传至github,觉得好用就给个star吧,谢谢 https://github.com/315386775/FC ...

  8. tensflow中加载 fashion_mnist 数据集时

    在tensflow中加载 fashion_mnist 数据集时,由于网络原因.可能会长时间加载不到或报错 此时我们可以通过离线的方式加载 1.首先下载数据集:fashion_mnist (下载后解压) ...

  9. 专访赵加雨:WebRTC在网易云信的落地

    去年的这个时候,在市面上公开表示使用WebRTC的公司还没几家,但2018年以来,宣布采用或支持WebRTC的公司已经越来越多.实时音视频提供商网易云信也在自研的NRTC中集成了WebRTC.在他们眼 ...

最新文章

  1. CVPR 2020丨UDVD:用于可变退化的统一动态卷积超分辨率网络
  2. 链表list(链式存储结构实现)_VOL.2 如何在python中实现链式存储结构
  3. js中String的常用扩展
  4. effective typescript_初学typescript(一) - 来亦何哀
  5. 测试工具iometer, iozone, bonnie++
  6. 使用 dynamic 类型让 ASP.NET Core 实现 HATEOAS 结构的 RESTful API
  7. 用iptables实现G1手机cmwap代理上http网站[转]
  8. 计算机视觉—图像特效(3)
  9. 生产是什么意思_俗话说:“牛遇无春年,出力好耕田”是啥意思?有什么道理?...
  10. C/C++教程 第十二章 —— MFC的基本使用
  11. java 汉字按照拼音排序
  12. 嵌入式 | 51 单片机《手把手教你51单片机-C语言版》
  13. 高颜值:Redis官方可视化工具,功能强大!
  14. 计算机毕业设计-基于springboot的社区志愿者管理系统
  15. TDA4VM中各个CPU对应的名字
  16. Python输出[m,n]既能被3整除又能被7整除的数的个数
  17. Exif图片方向的一些发现
  18. 第16周项目3--用函数指针调用函数(吃饭,睡觉,打豆豆)
  19. C#中public 、private、protect的区别
  20. sqlServer sa账号被锁定

热门文章

  1. 【人工智能的数学基础】超球面上的von Mises-Fisher(vMF)分布
  2. mysql latin1 utf8差别_不同子系统采用不同MySQL编码LATIN1和UTF8的兼容
  3. CSS大道至简--读《CSS禅意花园》
  4. ctf第二篇——give you flag(图片隐写)
  5. 西岛隆弘与宇野实彩子
  6. 20060303个人日志
  7. 解决穿山甲Gromore广告在Oppo上报广告病毒Android.Virus.AdCheat.AdCut.A
  8. 嵌入式计算机系统设计第四次实验报告
  9. 基本远程连接工具Xshell
  10. jackson学习----解析豆瓣的图书信息