你是否有过这么的烦躁,拍出来的像片老是不够表示,显得雾蒙蒙的?其实,通过一些浅易的技巧,咱们不错让这些迂缓的像片振作荣达。领先,让咱们来了解一下什么是图像表示度。浅易来说,图像表示度等于指图片91porn y中的细节是否表示可见。一张表示的像片91porn y,细节丰富,角落分明;而一张迂缓的像片,则细节丢失,看起来不够敏感。图像表示度增强等于指通过一系列算法和时刻技能提高图像的视觉成果,使图像中的细节愈加表示,角落愈加敏感,全体图像愈加显豁。
二、图像表示度增强有推敲:二、图像表示度增强有推敲:
为了擢升图像的表示度,咱们制定了以下增强有推敲: 高反差保留:领先,咱们对原图进行高反差保留惩处,这一材干旨在保留图像中的高频细节,如角落和纹理,同期过滤掉低频的配景噪声。通过这种花式,图像的细节获取强化,而不会引入稀疏的噪声。 USM锐化:接着,咱们对图像进行USM(Unsharp Masking)锐化惩处。USM锐化是一种常用的图像增强时刻,它通过增强图像的角落对比度来提高图像的表示度。这一材干将进一步超过图像的细节,使图像看起来愈加敏感。 细节图与原图重复:临了,咱们将经过USM锐化惩处的细节图与原始图像进行重复。这一材干通过同一原始图像的颜色信息和锐化后的细节信息,齐备图像表示度的全体擢升。 具体履行材干如下: 对原图进行小核高斯迂缓惩处,这一材干有助于进一步去除图像上的噪声,为后续的细节保留和锐化打下细腻的基础。对去噪后的图像诳骗高反差保留,以保留图像中的细节信息。 对保留细节后的图像进行USM锐化,以增强图像的角落和细节。将锐化后的细节图与原始图像进行重复,通过重复惩处,最终的图像既保留了原始颜色,又增强了表示度和细节。 通过上述有推敲,咱们不错有用地擢升图像的表示度,使图像愈加稳妥视觉审好意思和骨子诳骗的需求。
三、算法齐备材干 3.1高反差保留齐备高反差保留是一种图像惩处时刻,它的主要认识是强化图像中的细节和角落,同期尽量保抓图像的全体亮度不变。简而言之,高反差保留的经过如下: 识别反差:领先,算法会分析图像中的每个像素与其周围像素之间的反差进度。反差常常是通过策画像素值的梯度来详情的,梯度越大,反差就越显然。 保留反差:在识别出反差之后,算法会将这些反差信息保留住来。具体来说,等于将那些反差较大的像素点保留其原始值,而将反差较小的像素点(常常是图像的平坦区域)救济为接近中间灰度的值。 和会图像:临了,将经过反差保留惩处的图像与原始图像进行和会。这么,原始图像中的低反差区域(如平滑过渡的颜色或亮度区域)会保抓不变,而高反差区域(如角落和细节)则会获取增强。 高反差保留的成果是使图像的细节愈加超过,而不会权臣改造图像的全体色调。这种时刻在图像增强、锐化惩处以及艺术成果制作中非连接用
代码如下:
def high_reserve(img, ksize, sigm): # 将输入图像救济为浮点数,以便进行后续的数学运算 img = img * 1.0 # 使用高斯迂缓对图像进行迂缓惩处,ksize是高斯核的大小,sigm是高斯核的措施差 gauss_out = cv2.GaussianBlur(img, (ksize, ksize), sigm) # 策画原始图像与高斯迂缓后的图像之差,然后加上128以救济亮度 img_out = img - gauss_out + 128 # 将图像数据缩放到0到1的范围内,便于后续惩处 img_out = img_out / 255.0 # 有余惩处,防患像素值超出0到1的范围 # 创建一个掩码,标记小于0的像素 mask_1 = img_out < 0 # 创建一个掩码,标记大于1的像素 mask_2 = img_out > 1 # 将小于0的像素值竖立为0 img_out = img_out * (1 - mask_1) # 将大于1的像素值竖立为1 img_out = img_out * (1 - mask_2) + mask_2 # 复返惩处后的图像 return img_out3.2. usm锐化图片
USM(Unsharp Masking,非锐化逃避)锐化是一种常用的图像惩处时刻,用于增强图像的角落和细节,使图像看起来愈加表示和显豁。以下是USM锐化的基高兴趣和材干: 旨趣:USM锐化的中枢想想是先迂缓原图像,然后从原图中减去这个迂缓的版块,临了将获取的角落增强收尾与原图混杂,以此来擢升图像的表示度。 材干: 1.高斯迂缓:领先,对原始图像诳骗高斯迂缓。这个经过会创建一个迂缓版块的图像,迂缓的进度由用户设定的半径(radius)参数箝制。 2. 角凄惨要:接下来,从原始图像中减去迂缓的图像。这个操作会超过图像中的角落和细节,因为这些区域在减法操作后会有较高的对比度。 3. 混杂:临了,将索要出的角落信息与原始图像进行混杂。混杂的比例由用户设定的数目(amount)参数箝制,这个参数决定了锐化成果的强度。
代码如下:
av迅雷def usm(img, number): # 使用高斯迂缓对原始图像进行迂缓惩处,(0, 0)暗示核大小自动把柄sigma值策画 # number参数是高斯核的措施差sigma,箝制迂缓的进度 blur_img = cv2.GaussianBlur(img, (0, 0), number) # 使用addWeighted函数对原始图像和迂缓图像进行混杂 # 参数1.5和-0.5诀别是原始图像和迂缓图像的权重,0是加到混杂收尾上的常数 # 这里的权重竖立使得混杂收尾华夏始图像的角落和细节获取增强 usm = cv2.addWeighted(img, 1.5, blur_img, -0.5, 0) # 复返USM锐化惩处后的图像 return usm3.3 Overlay重复
Overlay”(重复)是一种混杂模式,它用于将两个图层的内容以特定的花式混杂在沿途,创造出一系列视觉成果。重复混杂模式常常用于增强图像的对比度和有余度,同期保留底层图层的细节。 重复混杂模式的成果取决于底层图层的亮度。它把柄底层图层的亮度来救济混杂图层(即顶层图层)的情态,除名以下按序: 1. 当底层图层像素的亮度低于50%时: 重复混杂模式会将顶层图层的情态与底层图层进行“乘法”混杂。这会导致底层较暗的区域变得更暗,从而增强对比度。 2. 当底层图层像素的亮度高于50%时: 重复混杂模式会将顶层图层的情态与底层图层进行“屏幕”混杂。这会导致底层较亮的区域变得更亮,雷同增强对比度。
代码齐备:
def Overlay(target, blend): # 创建一个布尔型掩码,其中blend小于0.5的像素位置为True,不然为False mask = blend < 0.5 # 使用掩码对图像进行分区域惩处 # 当掩码为True时(即blend小于0.5),使用公式2 * target * blend策画混杂收尾 # 当掩码为False时(即blend大于等于0.5),使用公式1 - 2 * (1 - target) * (1 - blend)策画混杂收尾 img = 2 * target * blend * mask + (1 - mask) * (1 - 2 * (1 - target) * (1 - blend)) # 复返惩处后的图像 return img
注: 2 * target * blend * mask: mask 是一个布尔数组,它暗示混杂图层 blend 中像素值小于0.5的位置。 当 mask 为 True 时,即 blend 的像素值小于0.5,这个部分会被激活。 2 * target * blend 齐备了“乘法”混杂成果,这会使得较暗的区域变得更暗,增强对比度。 (1 - mask): 这是一个反掩码,它暗示混杂图层 blend 中像素值大于等于0.5的位置。 当 mask 为 False 时,即 blend 的像素值大于等于0.5,这个部分会被激活。 (1 - 2 * (1 - target) * (1 - blend)): 这个抒发式齐备了“屏幕”混杂成果,当 blend 的像素值大于等于0.5时诳骗。 (1 - target) 和 (1 - blend) 诀别策画了推敲图层和混杂图层像素值的补数。 2 * (1 - target) * (1 - blend) 齐备了补数的“乘法”混杂,然后通过 1 - 取反,获取“屏幕”混杂成果,这会使得较亮的区域变得更亮。
四:全体代码齐备import cv2 import numpy as np def high_reserve(img,ksize,sigm): img = img * 1.0 gauss_out = cv2.GaussianBlur(img,(ksize,ksize),sigm) img_out = img - gauss_out + 128 img_out = img_out/255.0 # 有余惩处 mask_1 = img_out < 0 mask_2 = img_out > 1 img_out = img_out * (1-mask_1) img_out = img_out * (1-mask_2) + mask_2 return img_out def usm(img ,number): blur_img = cv2.GaussianBlur(img, (0, 0), number) usm = cv2.addWeighted(img, 1.5, blur_img, -0.5, 0) return usm def Overlay(target, blend): mask = blend < 0.5 img = 2 * target * blend * mask + (1 - mask) * (1 - 2 * (1 - target) * (1 - blend)) return img img = cv2.imread(r'F:\traditional_vison\R-C.png') img_gas = cv2.GaussianBlur(img,(3,3),1.5) # img = cv2.resize(img,(640,480)) # print(img.shape) high = high_reserve(img_gas,11,5) usm1 = usm(high,11) add = (Overlay(img_gas/255,usm1)*255).astype(np.uint8) cv2.imshow("de_blur",add) cv2.imshow("img_gas",img_gas) # add=cv2.medianBlur((add*255).astype(np.uint8),3) # cv2.imwrite(r"E:\PS\R-C (1).jpg",add) cv2.waitKey(0)五:成果
左侧为原始图像,右侧为增强后的图像
图片
本站仅提供存储就业,统统内容均由用户发布,如发现存害或侵权内容,请点击举报。