图片去燥

主要函数

cv.fastNlMeansDenoising()对灰度图像去燥

cv.fastNlMeansDenoisingColored() 对彩色图像去燥

cv.fastNlMeansDenoisingMulti()对灰度图片序列去燥

cv.fastNlMeansDenoisingColoredMulti()对彩色图片序列去燥

例子cv.fastNlMeansDenoisingColored()

import numpy as np

import cv2 as cv

from matplotlib import pyplot as plt

img = cv.imread('die.png')

dst = cv.fastNlMeansDenoisingColored(img,None,10,10,7,21)

plt.subplot(121),plt.imshow(img)

plt.subplot(122),plt.imshow(dst)

plt.show()

例子 cv.fastNlMeansDenoisingMulti()

import numpy as np

import cv2 as cv

from matplotlib import pyplot as plt

cap = cv.VideoCapture('vtest.avi')

# create a list of first 5 frames

img = [cap.read()[1] for i in xrange(5)]

# convert all to grayscale

gray = [cv.cvtColor(i, cv.COLOR_BGR2GRAY) for i in img]

# convert all to float64

gray = [np.float64(i) for i in gray]

# create a noise of variance 25

noise = np.random.randn(*gray[1].shape)*10

# Add this noise to images

noisy = [i+noise for i in gray]

# Convert back to uint8

noisy = [np.uint8(np.clip(i,0,255)) for i in noisy]

# Denoise 3rd frame considering all the 5 frames

dst = cv.fastNlMeansDenoisingMulti(noisy, 2, 5, None, 4, 7, 35)

plt.subplot(131),plt.imshow(gray[2],'gray')

plt.subplot(132),plt.imshow(noisy[2],'gray')

plt.subplot(133),plt.imshow(dst,'gray')

plt.show()

https://docs.opencv.org/3.4/d5/d69/tutorial_py_non_local_means.html

图片修补

首先需要创建一个保护罩

import numpy as np

import cv2 as cv

img = cv.imread('messi_2.jpg')

mask = cv.imread('mask2.png',0)

dst = cv.inpaint(img,mask,3,cv.INPAINT_TELEA)

cv.imshow('dst',dst)

cv.waitKey(0)

cv.destroyAllWindows()

https://docs.opencv.org/3.4/df/d3d/tutorial_py_inpainting.html

图片高动态范围成像

Goal

Learn how to generate and display HDR image from an exposure sequence.

Use exposure fusion to merge an exposure sequence.

1加载不同曝光的图片到列表中

import cv2 as cv

import numpy as np

# Loading exposure images into a list

img_fn = ["img0.jpg", "img1.jpg", "img2.jpg", "img3.jpg"]

img_list = [cv.imread(fn) for fn in img_fn]

exposure_times = np.array([15.0, 2.5, 0.25, 0.0333], dtype=np.float32)

2合并图片成HDR

# Merge exposures to HDR image

merge_debevec = cv.createMergeDebevec()

hdr_debevec = merge_debevec.process(img_list, times=exposure_times.copy())

merge_robertson = cv.createMergeRobertson()

hdr_robertson = merge_robertson.process(img_list, times=exposure_times.copy())

3对合并的图片调整

# Tonemap HDR image

tonemap1 = cv.createTonemap(gamma=2.2)

res_debevec = tonemap1.process(hdr_debevec.copy())

4使用Mertens fusion合并图片

# Exposure fusion using Mertens

merge_mertens = cv.createMergeMertens()

res_mertens = merge_mertens.process(img_list)

5转换成8位格式的图片并保存

# Convert datatype to 8-bit and save

res_debevec_8bit = np.clip(res_debevec*255, 0, 255).astype('uint8')

res_robertson_8bit = np.clip(res_robertson*255, 0, 255).astype('uint8')

res_mertens_8bit = np.clip(res_mertens*255, 0, 255).astype('uint8')

cv.imwrite("ldr_debevec.jpg", res_debevec_8bit)

cv.imwrite("ldr_robertson.jpg", res_robertson_8bit)

cv.imwrite("fusion_mertens.jpg", res_mertens_8bit)

对摄像头的曲线评估

# Estimate camera response function (CRF)

cal_debevec = cv.createCalibrateDebevec()

crf_debevec = cal_debevec.process(img_list, times=exposure_times)

hdr_debevec = merge_debevec.process(img_list, times=exposure_times.copy(), response=crf_debevec.copy())

cal_robertson = cv.createCalibrateRobertson()

crf_robertson = cal_robertson.process(img_list, times=exposure_times)

hdr_robertson = merge_robertson.process(img_list, times=exposure_times.copy(), response=crf_robertson.copy())

https://docs.opencv.org/3.4/d2/df0/tutorial_py_hdr.html

python 并行计算 opencv_opencv-python计算影像相关推荐

  1. 利用python安装opencv_OpenCV Python安装教程

    OpenCV全称:Open Source Computer Vision Library,是一个开源的跨平台计算机视觉库,github地址:https://github.com/opencv/open ...

  2. 基于Python根据置信度区间计算植被覆盖度

    "把别人的经验变成自己的,他的本事就大了" 1 简述 大概九天前,我发了篇记录,大致是讲用Python计算Landsat8遥感生态指数RSEI,也就是下篇 "基于Pyth ...

  3. 使用Python使用大气校正法计算地表温度

    使用Python使用大气校正法计算地表温度 前言 也有段时间没有跟新博客了,这次博客就是用新学的python语言来进行一个地表温度的计算,也算是承接了之前的内容吧! 一.具体原理及方法 这里不再赘述, ...

  4. Python 之谷歌瓦片地图影像批量下载

    Python 之谷歌瓦片地图影像批量下载 最近在写毕业论文,想用谷歌影像作为底图来展示研究区,然后 Google 了很多脚本,结果发现输出的影像都不带空间坐标系,所以就想自己写个小工具,通过输入空间范 ...

  5. python并行计算(完结篇):并行方法总结

    转自:https://zhuanlan.zhihu.com/p/46678895 由于python相当易学易用,现在python也较多地用于有大量的计算需求的任务. 本文介绍几个并行模块,以及实现程序 ...

  6. python并行计算_《python并行计算(完结篇):并行方法总结》

    由于python相当易学易用,现在python也较多地用于有大量的计算需求的任务.本文介绍几个并行模块,以及实现程序并行的入门技术.本文比较枯燥,主要是为后面上工程实例做铺垫.完结篇对前期介绍的所有模 ...

  7. 【Python并行计算】- Dask 让你的python更快更强

    [Python并行计算]- Dask 让你的python更快更强 Dask(https://docs.dask.org/en/latest/) 是一个灵活的python并行/分布式计算的框架. 类似的 ...

  8. python并行计算之mpi4py的安装与基本使用

    技术背景 在之前的博客中我们介绍过concurrent等python多进程任务的方案,而之所以我们又在考虑MPI等方案来实现python并行计算的原因,其实是将python的计算任务与并行计算的任务调 ...

  9. python并行计算|pycuda测试、对比及分析

    python并行计算|pycuda测试.对比及分析 增量式学习算法能够同时学习网络的节点与参数,但是随着模型结构的增长,计算成本也越来越高,有两个途径可以减少计算所需的时间成本:(1)研究模型划分方法 ...

  10. Python 并行计算

    Python 并行计算 一.实验说明 本实验介绍 Python 并行计算能够用到的工具. 1. 环境登录 无需密码自动登录,系统用户名shiyanlou 2. 环境介绍 本课程实验环境使用Spyder ...

最新文章

  1. ngrok服务器搭建_C/C++ Linux 后台服务器开发高级架构师学习知识路线总结
  2. 怎样写出无法维护的代码
  3. 没有绿幕,AI也能完美视频抠图,发丝毕现,毫无违和感 | CVPR
  4. android 串口开发_详细分析Esp8266上电信息打印的数据,如何做到串口通讯上电不乱码打印...
  5. Gentoo 安装日记 12 (配置内核 :电源和bios)
  6. python get 下载 目录_python实现支持目录FTP上传下载文件的方法
  7. html设置文字超过字数_css限制文字显示字数长度,超出部分自动用省略号显示,防止溢出到第二行...
  8. 聊聊JVM(一)相对全面的GC总结
  9. OS-鸿蒙系统-以及编译器
  10. C++---肿瘤面积
  11. 自动化运维Shell课堂笔记
  12. linux输入法没有候选,fcitx中文输入法没有备选框
  13. AVR单片机项目教程 基于C语言,AVR单片机项目教程:基于C语言(第2版)
  14. HikariCP 创建连接
  15. 内存颗粒性能测试软件,PC技巧分享 篇四:如何通过快速识别内存颗粒了解超频性能...
  16. Word文档压缩的方法
  17. Android SDK的级别
  18. 线性方程组的直接解法
  19. 火水风四种元素平衡 ABCD四个相等
  20. L - Lifeguards 思维

热门文章

  1. python xml模块
  2. laravel后台扩展包
  3. JAVA遇见HTML——JSP篇(JSP内置对象上)
  4. Yii2 获取URL的一些方法
  5. 热烈祝贺Polymer中文组织站点上线
  6. .NET平台开源项目速览(4).NET文档生成工具ADB及使用
  7. PE格式详细讲解1 - 系统篇01|解密系列
  8. AtlasControlToolkit.CascadingDropDownNameValue自定义用法
  9. 埃夫特冲刺科创板 国产工业机器人领军者谋“换道超车”
  10. Arxiv最新论文,深度学习热点论文,Arxiv每日更新