openCV study-Moudle6_图像处理

https://github.com/makelove/OpenCV-Python-Tutorial

https://docs.opencv.org/4.1.0/d6/de2/tutorial_py_table_of_contents_ml.html


计算摄影

学习图像 非局部去噪方法,修补,HDR 处理


去燥Image Denoising: 之前学习的模糊方法去除噪声,都是利用噪声像素的邻居值来替换噪声像素点。比如高斯模糊啊,中值滤波啊 etc.

噪声有个特点,所有噪声的均值为0,

非局部去噪方法。与我们之前看到的模糊技术相比,它需要更多的时间,但是效果非常好。更多细节和在线演示可以在附加资源的第一个链接中找到。

CV_Lesson51_非局部去燥1.py--彩色图片

CV_Lesson52_非局部去燥2.py --视频


Image Inpainting  图像修补 

CV_Lesson53_图像修补.py

恢复老照片上缺失,损坏的部分

最简单的方法,用邻居像素来替换损坏的部分

§ inpaint()
void cv::inpaint	
(	
InputArray 	src,
InputArray 	inpaintMask,
OutputArray 	dst,
double 	inpaintRadius,
int 	flags 
)		
Python:
dst	=	cv.inpaint(	src, inpaintMask, inpaintRadius, flags[, dst]	)
#include <opencv2/photo.hpp>

Restores the selected region in an image using the region neighborhood.

Parameters
src	Input 8-bit, 16-bit unsigned or 32-bit float 1-channel or 8-bit 3-channel image.
inpaintMask	Inpainting mask, 8-bit 1-channel image. Non-zero pixels indicate the area that needs to be inpainted.
dst	Output image with the same size and type as src .
inpaintRadius	Radius of a circular neighborhood of each point inpainted that is considered by the algorithm.
flags	Inpainting method that could be cv::INPAINT_NS or cv::INPAINT_TELEA
The function reconstructs the selected image area from the pixel near the area boundary. The function may be used to remove dust and scratches from a scanned photo, or to remove undesirable objects from still images or video. 

High Dynamic Range (HDR)

问题描述:人眼可以适应大范围的光照条件,但大多数成像设备每通道使用8位元,因此我们被限制在256级。

人眼的感知能力还是很强的,设备硬件!目前还达不到人眼的能力,需要尝试逼近直到超越人眼感知。

 

https://zhuanlan.zhihu.com/p/20705821

 

HDR 16bit ---20*log(2^16)=100db. 

HDR 12bit ---20*log(2^12)=-72db. HDR 10bit ---20*log(2^10)=-60db. 

HDR 8bit= 50db


软件调整HDR ,如下,enjoy:)

 

当我们拍摄真实世界的场景时,明亮的区域可能曝光过度,而黑暗的区域可能曝光不足,所以我们不能用一次曝光捕捉所有的细节。HDR成像处理的图像每个通道使用超过8位(通常为32位浮点值),允许更大的动态范围。

获取HDR图像有不同的方法,但最常见的方法是使用不同曝光值的场景照片。要将这些曝光组合起来,了解相机的响应函数是很有用的,并且有算法可以估计它

在本教程中,我们展示了从曝光序列生成和显示HDR图像的两种算法(Debevec, Robertson),并演示了另一种方法,称为曝光融合(exposure fusion, Mertens),它生成低动态范围的图像,不需要曝光时间数据。此外,我们估计了相机的响应函数(CRF),这对许多计算机视觉算法都有很大的价值。相机响应功能(CRF)给出了场景辐射度与测量强度值之间的连接

现实应用:手机通过软件方式,调整HDR,HDR开启后会连拍三张照片,分别对应欠曝光、正常曝光和过度曝光,然后把这三张图片合到一块并且突出每张照片最好的部分从而生成一张精妙绝伦的照片。这就是为什么当你打开HDR模式时,你的手机会花较长时间拍照。实际上它是拍摄了三张照片,而非一张。它的好处在于拍出的图像不会像是透过相机看到的,而更像是人眼直接看到的。总之,HDR能让该亮的亮、让该暗的暗、让亮/暗部的细节更丰满。

 

算法思想:

 利用曝光的样本图片(输出),来获得相机响应函数(模型), 再反向恢复图片。 (输入真值如何确定的?--同一场景,已知相机的曝光时间,不同的曝光时间,可以获得对应的曝光照片)

举例:  

输入:曝光时间设置: 15, 2.5, 1/4 and 1/30 seconds.

输出:

求: 相机曝光模型?

CV_Lesson54_HDR调整.py

发现融合的效果最好。

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值