精华内容
下载资源
问答
  • 图像增强目的使得模糊图片变得更加清晰、图片模糊的原因是因为像素灰度差值变化不大,图片各区域产生视觉效果似乎都是一样的, 没有较为突出的地方,看起来不...本文将对每种方法 简单介绍一下,并借助于 Python ...

    图像增强目的使得模糊图片变得更加清晰、图片模糊的原因是因为像素灰度差值变化不大,图片各区域产生视觉效果似乎都是一样的, 没有较为突出的地方,看起来不清晰的感觉

    解决这个问题的最直接简单办法,放大像素灰度值差值、使图像中的细节更加清晰。

    目前较为常用的几个方法:伽马变换、线性变换、分段线性变换、直方图均衡化,对于图像对比度增强,都能取得不错的效果!

    本文将对每种方法 简单介绍一下,并借助于 Python 、OpenCV 进行代码实现,提前说一下哈,下面处理的图像对象都是单通道灰度图,不是三通道彩色图!

    1,线性变换

    线性变换的原理是对所有像素值乘上一个扩张因子

    ,像素值大的变得越大,像素值小的变得越小,从而达到图像增强的效果,这里利用 Numpy 的数组进行操作;

    需要注意的是,像素值最大为255,因此在数组相乘之后需要进行数值截断操作,最终代码如下:

    defline_trans_img(img,coffient):if len(img.shape) == 3: img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) out = 2*img#像素截断;;; out[out>255] = 255 out = np.around(out)return out这里

    设置为 2 ,变换结果如下,会看到强光处出现失真效果

    line.png(这里对排列图片做一下说明,从左到右依次为 原图灰度图、原图灰度直方图、处理之后的灰度图、处理之后的灰度直方图,以下的图片排列方式相同)

    2,伽马变换

    伽马变换对像素值做的是幂次方变换,主要是图像的灰度级发生改变,转换的原理公式为:

    参数 的设定 可以参照下面:

    Snipaste_2020-05-26_20-18-17.png当>1 时,会减小灰度级较高的地方,增大灰度级较低的地方;当 <1 时,会增大灰度级较高的地方,减小灰度级较低的地方;defgama_transfer(img,power1):if len(img.shape) == 3: img= cv2.cvtColor(img,cv2.COLOR_BGR2RGB) img = 255*np.power(img/255,power1) img = np.around(img) img[img>255] = 255 out_img = img.astype(np.uint8)return out_img这里 Gamma 分别取 1.5,0.5,结果如下:

    gamma1.5.png

    gamma0.5.png结果来看,相对来说 对图像增强的结果会更好一点

    3,分段线性分割

    分段线性分割,提前把图像的灰度级分为几部分,然后对每一部分的像素值做不同的线性变换,像素值基本变换原理:

    这里写的代码总感觉效率特别慢(逐像素改变),知道改进方法的小伙伴们望告知:

    defseg_augment_img(img,start,c1,end,c2,b2,c3,b3):if len(img.shape) == 3: img= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) out_img = np.zeros(img.shape)for i in range(img.shape[0]):for j in range(img.shape[1]):if img[i][j] 255] = 255 out = np.around(out_img) out = out.astype(np.uint8)return out函数中的参数分别为 50,0.5,150,3.6,-310,0.238,194,结果如下:

    seg_line.png4,直方图均衡化

    每个灰度图像都有自己的灰度直方图,均衡化的原理是,先根据灰度直方图计算累加灰度直方图,根据灰度图与累加灰度图的映射关系关联输入图像与输出图图像的映射关系

    映射关系原理如下:

    因此,这里几个重要部分:1,计算出灰度直方图;2,计算累加灰度直方图;3,根据 1 和 2 得到映射关系,最终输出灰度像素值;

    defget_imghist(img):# 判断图像是否为三通道;if len(img.shape) == 3: img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)# 无 Mask,256个bins,取值范围为[0,255] hist = cv2.calcHist([img],[0],None,[256],[0,255])return histdefcal_equalhist(img):if len(img.shape) == 3: img= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) h,w = img.shape[:2] grathist = get_imghist(img) zerosumMoment = np.zeros([256],np.uint32)for p in range(256):if p ==0: zerosumMoment[p] = grathist[0]else: zerosumMoment[p] = zerosumMoment[p-1] +grathist[p] output_q = np.zeros([256],np.uint8) cofficient = 256.0/(h*w)for p in range(256): q = cofficient *float(zerosumMoment[p]) - 1if q >= 0: output_q[p] = math.floor(q)else: output_q[p] = 0 equalhistimage = np.zeros(img.shape,np.uint8)for i in range(h):for j in range(w): equalhistimage[i][j] = output_q[img[i][j]]# 第二种方法,opencv 库函数自带一种:#equalhistimage = cv2.equalizeHist(img)return equalhistimage结果如下,看起来还是不错的!(这里图片失真是因为灯光的原因)

    equalhist.png5,小总结

    根据以上几个增强方法来看,针对于本案例选取的图像,线性增强方法相对效果并不太好,可能会适用于其它的种类图像,而 Gamma转换 和直方图均衡化取得相对不错的结果

    但图像增强、锐化没有最优方法,每种方法都有自己的特点,需要根据自己选择合适的

    最后还是要提醒一下感兴趣的小伙伴们,记得跟着敲一下代码,加深一下应用原理!

    展开全文
  • 这真是一件悲剧的事,早上,我花了很长时间写了这篇文章当我快要完成时,然后电脑就蓝屏了,重启后,一切都成了浮云好啦,没耐心再写那么多了,尽量简单吧在图像识别中,需要有边缘鲜明的图像,即图像锐化。图象锐化...

    这真是一件悲剧的事,早上,我花了很长时间写了这篇文章

    当我快要完成时,然后电脑就蓝屏了,重启后,一切都成了浮云

    好啦,没耐心再写那么多了,尽量简单吧

    在图像识别中,需要有边缘鲜明的图像,即图像锐化。

    图象锐化的目的是为了突出图像的边缘信息,加强图像的轮廓特征,以便于人眼的观察和机器的识别。

    在空间域进行图象锐化主要有以下方法

    梯度算子

    其他锐化算子

    拉普拉斯算子

    (1)梯度空间算子

    图像的边缘最直观的表现就是边缘两侧的灰度值相差比较大,在微积分中我们学过梯度的概念

    梯度是一个列向量,可表示为:

    而某点处梯度的模很好的反应了该点两侧的变化大小

    所以,梯度值很大的点也就代表了图像的边缘

    而在实际计算中,为了降低运算量,一般用一下两种方法来代替模运算

    由于数字图像处理中处理的是数字离散信号

    所以,我们用差分来等同于连续信号中的微分运算

    典型的梯度运算有

    而另一种称为Roberts梯度的差分运算可由下来表示

    我们来编写程序来实现上面计算

    import

    cv

    def

    Sharp(image,flag1

    =

    0,flag2

    =

    0):

    w

    =

    image.width

    h

    =

    image.height

    size

    =

    (w,h)

    iSharp

    =

    cv.CreateImage(size,

    8

    ,

    1

    )

    for

    i

    in

    range(h

    -

    1

    ):

    for

    j

    in

    range(w

    -

    1

    ):

    if

    flag2

    ==

    0:

    x

    =

    abs(image[i,j

    +

    1

    ]

    -

    image[i,j])

    y

    =

    abs(image[i

    +

    1

    ,j]

    -

    image[i,j])

    else

    :

    x

    =

    abs(image[i

    +

    1

    ,j

    +

    1

    ]

    -

    image[i,j])

    y

    =

    abs(image[i

    +

    1

    ,j]

    -

    image[i,j

    +

    1

    ])

    if

    flag1

    ==

    0:

    iSharp[i,j]

    =

    max(x,y)

    else

    :

    iSharp[i,j]

    =

    x

    +

    y

    return

    iSharp

    image

    =

    cv.LoadImage(

    '

    lena.jpg

    '

    ,0)

    iMaxSharp

    =

    Sharp(image)

    iAddSharp

    =

    Sharp(image,

    1

    )

    iRMaxSharp

    =

    Sharp(image,0,

    1

    )

    iRAddSharp

    =

    Sharp(image,

    1

    ,

    1

    )

    cv.ShowImage(

    '

    iMaxSharp

    '

    ,iMaxSharp)

    cv.ShowImage(

    '

    image

    '

    ,image)

    cv.ShowImage(

    '

    iAddSharp

    '

    ,iAddSharp)

    cv.ShowImage(

    '

    iRAddSharp

    '

    ,iRAddSharp)

    cv.ShowImage(

    '

    iRMaxSharp

    '

    ,iRMaxSharp)

    cv.WaitKey(0) 我们来看看运行结果

    下面是Roberts梯度

    可以比较下两种方法的效果

    (2)其他锐化算子

    利用梯度和差分原理可以组成以下锐化算子

    1.Sobel算子

    2.Prewitt算子

    3.Isotropic算子

    好啦,我们还是写程序吧

    import

    cv

    def

    SuanSharp(image,arrayX,arrayY):

    w

    =

    image.width

    h

    =

    image.height

    size

    =

    (w,h)

    iSuanSharp

    =

    cv.CreateImage(size,

    8

    ,

    1

    )

    tmpX

    =

    [0]

    *

    9

    tmpY

    =

    [0]

    *

    9

    for

    i

    in

    range(

    1

    ,h

    -

    1

    ):

    for

    j

    in

    range(

    1

    ,w

    -

    1

    ):

    for

    k

    in

    range(

    3

    ):

    for

    l

    in

    range(

    3

    ):

    tmpX[k

    *

    3

    +

    l]

    =

    image[i

    -

    1

    +

    k,j

    -

    1

    +

    l]

    *

    arrayX[k

    *

    3

    +

    l]

    tmpX[k

    *

    3

    +

    l]

    =

    image[i

    -

    1

    +

    k,j

    -

    1

    +

    l]

    *

    arrayX[k

    *

    3

    +

    l]

    iSuanSharp[i,j]

    =

    sum(tmpX)

    +

    sum(tmpY)

    return

    iSuanSharp

    image

    =

    cv.LoadImage(

    '

    lena.jpg

    '

    ,0)

    SobelX

    =

    [

    1

    ,0,

    -

    1

    ,

    2

    ,0,

    -

    2

    ,

    1

    ,0,

    -

    1

    ]

    SobelY

    =

    [

    -

    1

    ,

    -

    2

    ,

    -

    1

    ,0,0,0,

    1

    ,

    2

    ,

    1

    ]

    PrewittX

    =

    [

    1

    ,0,

    -

    1

    ,

    1

    ,0,

    -

    1

    ,

    1

    ,0,

    -

    1

    ]

    PrewittY

    =

    [

    -

    1

    ,

    -

    1

    ,

    -

    1

    ,0,0,0,

    1

    ,

    1

    ,

    1

    ]

    IsotropicX

    =

    [

    1

    ,0,

    -

    1

    ,

    1.414

    ,0,

    -

    1.414

    ,

    1

    ,0,

    -

    1

    ]

    IsotropicY

    =

    [

    -

    1

    ,

    -

    1.414

    ,

    -

    1

    ,0,0,0,

    1

    ,

    1.414

    ,

    1

    ]

    iSobelSharp

    =

    SuanSharp(image,SobelX,SobelY)

    iPrewittSharp

    =

    SuanSharp(image,PrewittX,PrewittY)

    iIsotropicSharp

    =

    SuanSharp(image,IsotropicX,IsotropicY)

    cv.ShowImage(

    '

    image

    '

    ,image)

    cv.ShowImage(

    '

    iPrewittSharp

    '

    ,iPrewittSharp)

    cv.ShowImage(

    '

    iSobelSharp

    '

    ,iSobelSharp)

    cv.ShowImage(

    '

    iIsotropicSharp

    '

    ,iIsotropicSharp)

    cv.WaitKey(0)

    看看运行效果吧

    好吧,这三个图的运算花了好几秒的时间,循环太多了,其实可以用numpy做矩阵运算

    我们在这里主要学习图像处理原理,不是学习编程

    (3)拉普拉斯运算

    拉普拉斯运算比较适合于改善因为光线的漫反射而造成的图像模糊,拉普拉斯算子法是常用的边缘增强处理算子

    它是各向同性的二阶导数

    对于连续二元函数有:

    整理后有:

    可以得到拉普拉斯算子模板:

    看看运行效果

    而对于Photoshop这类软件来说,锐化和我这里所说的锐化不同

    它是在原图基础上,加强边缘效果

    我们只要把模板适当改动就能实现这样的效果

    还有一种思路,我们在前面讲了图像的平滑,我们用原图减去平滑后的图像

    得到的就是锐化边缘了

    第四幅图我们对轮廓线做了对数灰度变换,前面讲过的

    不过,效果没有前面直接锐化清晰

    我们还可以在原图上乘以一个大于1的因子再减去模糊后的图像

    得到如下结果

    好啦,图像空域的锐化处理就讲到这里啦,是不是很简单呢?

    展开全文
  • 图像锐化原理及实现(PY)

    千次阅读 2020-03-16 20:35:14
    图像锐化是和平滑相反的操作,目的是为了使模糊的图像变得清晰。既然是相反的目的,那么操作应该也是相反的,平滑使用的是图像邻域的加权求和或者是积分运算,而锐化则是使用求导数(梯度)或有限差分来实现。 基于...

    图像锐化是和平滑相反的操作,目的是为了使模糊的图像变得清晰。既然是相反的目的,那么操作应该也是相反的,平滑使用的是图像邻域的加权求和或者是积分运算,而锐化则是使用求导数(梯度)或有限差分来实现。

    基于一阶导数的图像增强——梯度算子

           对于二维的连续函数f(x, y),在点(x,y)处的梯度为

    \bigtriangledown f = \begin{bmatrix} \frac{\partial f}{\partial x}\\ \frac{\partial f}{\partial y} \end{bmatrix}

           其中两个偏导数的计算公式为

    \frac{\partial f}{\partial x}=\lim_{\epsilon \rightarrow 0}\frac{f(x+\epsilon, y)-f(x, y)}{\epsilon}

    \frac{\partial f}{\partial y}=\lim_{\epsilon \rightarrow 0}\frac{f(x, y+\epsilon)-f(x, y)}{\epsilon}

            梯度的幅值作为变化率的度量,其值如下。为什么要求梯度的幅值?想一下平滑的处理思路,最简单的平均平滑,在简单的一维情况下就是就某个位置上的数值替换成基于这个位置的邻域的积分值;而积分的逆变换就是微分,也就是将该位置的数值替换成这个位置的效斜率。所以二维情况下,就是将梯度幅值的值作为新的值。

    |\bigtriangledown f(x,y)| = \sqrt{(\frac{\partial f}{\partial x})^{2}+(\frac{\partial f}{\partial y})^{2}}

          对应到我们的二维离散图像中,就用差分来代替求导

    |\bigtriangledown f(x,y)| = \sqrt{[f(i+1,j)-f(i,j)]^{2}+[f(x,j+1)-f(x,j)]^{2}}

          上式中涉及平方和开方的运算,可以近似为绝对值的形式

    |\bigtriangledown f(i,j)| =|f(i+1,j)-f(i,j)|+|f(x,j+1)-f(x,j)|

            而在实际应用中,经常被采用的是另一种近似梯度——Robert交叉梯度。可以将第一项和第二项都用模板的形式展示,如下所示。

    |\bigtriangledown f(x,y)| =|f(i+1,j+1)-f(i,j)|+|f(x,j+1)-f(x+1,j)|

    w_{1}=\begin{bmatrix} -1 & 0\\ 0 & 1 \end{bmatrix}                w_{2}=\begin{bmatrix} 0 & -1\\ 1 & 0 \end{bmatrix}

           使用模板参与计算的方法和前面一致,只是根据我们的习惯,更偏向于采用奇数尺寸的模板。所以有一种计算Sobel梯度的Sobel模板更加常用。我看的书中也没有关于Sobel梯度的推导,百度了一下也似乎没看到有人怎么详细的写。所以就自己推了一下。基本的思想和推导Robert交叉梯度是相同的,都是用绝对值的和来代替平方和开方,减少计算量。区别在于将2x2的模板扩张成3x3,很直观的:

    |\bigtriangledown f(i,j)| =|G_{x}|+|G_{y}|

    G_{x}=\frac{(f(i+1,j)-f(i,j))+(f(i,j)-f(i-1,j))}{2}=\frac{f(i+1,j)-f(i-1,j)}{}2

    此时我们可以将w1写成

    w_{1}=\begin{bmatrix} 0 & 0 & 0\\ -1 & 0 & 1\\ 0 & 0 & 0\end{bmatrix}

    进而继续调整,考虑到f(i+1,j)\approx \frac{f(i+1,j+1)+f(i+1,j-1)}{2},即一个点的数值近似与它两侧(可以是上下也可以是左右)的点的数值的均值,适当变形代入上式中可得

    G_{x}=\frac{f(i+1,j)-f(i-1,j)}{2}=\frac{[f(i+1,j)-f(i-1,j)]+[\frac{f(i+1,j+1)+f(i+1,j-1)}{2}-\frac{f(i-1,j+1)+f(i-1,j-1)}{2}]}{4}

    整理成模板,即为

    w_{1}=\begin{bmatrix} -1 & 0 & 1\\ -2 & 0 & 2\\ -1 & 0 & 1\end{bmatrix}

    同理我们可以推导出

    w_{2}=\begin{bmatrix} -1 & -2 & -1\\ 0 & 0 & 0\\ 1 & 2 & 1\end{bmatrix}

           接下来我们试试将我们推到得到的Sobel模板,用于一张相对简单的图片来看看效果。为了计算方便,我们可以直接用前面写的一些函数拿来,然后修改其中的滤波模板,就可以达到效果。注意边界填充的方式,之前我们讲到,平滑的目的是为了消除噪声而不是突出边缘,所以各种各样的填充方法都可以尝试,影响不大;但是现在是为了突出图像中有意义的边缘,所以当我们在边界是做全0填充时,很有可能填充的部分和图像的边界就形成了变化剧烈的边缘,进而较大的梯度幅值在我们调整灰度范围时,将真正的图像中有意义的边缘的数值范围压缩到很小的范围,导致图像不清晰。所以最好要使用重复填充或者是镜像填充。

           注意一下,因为我们的模板中含有负数,而图像中的像素点的数值类型是uint8,在相乘时很可能会发生截断。所以首先要确保先将图像中的像素点的数值类型在与模板相乘时转化成整数型,或者是在读取图像时做一下设定如下:

    
     
    1. from PIL import Image
    2. import numpy as np
    3. im = Image. open(...)
    4. arr = np.array(im, dtype = "int16")

             然后计算完的数值,有可能大于0也有可能小于0,我们关心的是绝对值的大小所以可以取绝对值。最后需要将数值的范围调整到0-255之间即可。实现的代码如下:

    
     
    1. from PIL import Image
    2. import numpy as np
    3. def SobelFilter(src, dst, filter_kind = 1, padding = "replicate"):
    4. imarray = np.array(Image.open(src),dtype= 'double')
    5. #print(imarray.dtype)
    6. height, width = imarray.shape
    7. new_arr = np.zeros((height, width), dtype = "uint16")
    8. filter1 = np.array([[ -1, 0, 1],[ -2, 0, 2],[ -1, 0, 1]])
    9. filter2 = np.array([[ -1, -2, -1],[ 0, 0, 0],[ 1, 2, 1]])
    10. if filter_kind == 1:
    11. filter = filter1
    12. elif filter_kind == 2:
    13. filter = filter2
    14. k = filter.shape[ 0]
    15. for i in range(height):
    16. for j in range(width):
    17. total = 0
    18. for n in range(pow(k, 2)):
    19. '''
    20. k = 3, n = 0, 1, 2 ..., 8, a = -1, 0, 1, b = -1, 0, 1
    21. k = 5, n = 0, 1, 2, 3 ..., 24, a = -2, -1, 0, 1, 2
    22. '''
    23. a, b = int(n//k - (k -1)/ 2), int(n%k - 1)
    24. #filter_value
    25. aa, bb = int(n//k), int(n%k)
    26. f_value = filter[aa, bb]
    27. if i + a <= 0:
    28. if j + b <= 0:
    29. total += imarray[ 0, 0]*f_value
    30. elif j + b >= width - 1:
    31. total += imarray[ 0, -1]*f_value
    32. else:
    33. total += imarray[ 0, j + b]*f_value
    34. elif i + a >= height - 1:
    35. if j + b <= 0:
    36. total += imarray[ -1, 0]*f_value
    37. elif j + b >= width - 1:
    38. total += imarray[ -1, -1]*f_value
    39. else:
    40. total += imarray[ -1, j + b]*f_value
    41. else:
    42. if j + b <= 0:
    43. total += imarray[i + a, 0]*f_value
    44. elif j + b >= width - 1:
    45. total += imarray[i + a, -1]*f_value
    46. else:
    47. total += imarray[i + a, j + b]*f_value
    48. new_arr[i, j] = abs(total)
    49. max = np.max(new_arr)
    50. min = np.min(new_arr)
    51. final_arr = np.zeros((height, width), dtype = "uint8")
    52. for i in range(height):
    53. for j in range(width):
    54. final_arr[i, j] = 255*(new_arr[i, j] - min)/(max - min)
    55. final_im = Image.fromarray(final_arr)
    56. final_im.save(dst)
    57. #print("Suceess.")
    58. src = "C:/Users/60214/Desktop/python_work/DigitalExecution/geometry.jpg"
    59. dst1 = "C:/Users/60214/Desktop/python_work/DigitalExecution/sobel1.jpg"
    60. dst2 = "C:/Users/60214/Desktop/python_work/DigitalExecution/sobel2.jpg"
    61. SobelFilter(src, dst1, 1)
    62. SobelFilter(src, dst2, 2)

            得到的结果如下。可以看到w_{1}=\begin{bmatrix} -1 & 0 & 1\\ -2 & 0 & 2\\ -1 & 0 & 1\end{bmatrix}w_{2}=\begin{bmatrix} -1 & -2 & -1\\ 0 & 0 & 0\\ 1 & 2 & 1\end{bmatrix},这两个不同的滤波模板,前者突出了图像中竖直方向上的边缘,而后者突出的是水平方向上的边缘,各有特长。

    基于二阶导数的图像增强——拉普拉斯算子

           二维函数f(x,y)的二阶微分定义为

    \bigtriangledown ^{2}f(x,y)=\frac{\partial^2 f}{\partial x^2}+\frac{\partial^2 f}{\partial y^2}

           同理的,我们要试图用差分来代替微分

    \frac{\partial^2 f}{\partial x^2}=\left [ f(i+1,j)-f(i,j) \right ]-\left [ f(i,j)-f(i-1,j) \right ]

    \frac{\partial^2 f}{\partial y^2}=[f(i,j+1)-f(i,j)]-[f(i,j)-f(i,j-1)]

           即

    \frac{\partial^2 f}{\partial x^2}=f(i+1,j)+f(i-1,j)-2f(i,j)

    \frac{\partial^2 f}{\partial y^2}=f(i,j+1)+f(i,j-1)-2f(i,j)

           两式相加就得到了用于图像锐化的拉普拉斯算子

    \bigtriangledown ^{2}f(x,y)=f(i+1,j)+f(i-1,j)+f(i,j+1)+f(i,j-1)-4f(i,j)

           对应的滤波模板为

    W_{1}=\begin{bmatrix} 0 & 1 & 0\\ 1 & -4 & 1\\ 0 & 1 & 0\end{bmatrix}

           记得在一维微分的锐化中,我们对响应都取了绝对值,这意味着滤波模板与图像图像像素的计算值,绝对值相同的正值和负值表示相同的响应,所以也等同于使用下面的模板。

    W_{2}=\begin{bmatrix} 0 & -1 & 0\\ -1 & 4 & -1\\ 0 & -1 & 0\end{bmatrix}

           然后来分析模板的结构。所谓模板的结构,例如W1,模板如果旋转90度,实际上还是同一个模板;而Sobel算子,旋转90度会变成一组的另一个算子,这就对应了,一个水平一个竖直的特性。那么拉普拉斯算子,既然旋转90度等于自身,也就说明它对接近水平和接近竖直方向的边缘都有很好的加强。更进一步,我们构造对于45度旋转各向同性的滤波器如下:

    W_{3}=\begin{bmatrix} 1 & 1 & 1\\ 1 & -8 & 1\\ 1 & 1 & 1\end{bmatrix}                             W_{4}=\begin{bmatrix} -1 & -1 & -1\\ -1 & 8 & -1\\ -1 & -1 & -1\end{bmatrix}

            计算的代码和上面的一致,只是模板修改了一下下。但从结果中,看到效果并不好,甚至非常的模糊,这是因为我第一次实践使用的图片是素描作品,图像比较粗糙,不适合用来做这种操作。

    
     
    1. filter1 = np.array([[ 0, 1, 0],[ 1, -4, 1],[ 0, 1, 0]])
    2. filter2 = np.array([[ 1, 1, 1],[ 1, -8, 1],[ 1, 1, 1]])
    3. filter3 = np.array([[ 1, 4, 1],[ 4, -20, 4],[ 1, 4, 1]])

            用回之前的动漫人物,处理的结果如下。可以看到,大致勾画出了人物的边缘,是比较准确有效的,其中,第二幅图和第三幅图都比第一幅图效果要好,是因为它们俩对于倾斜的45度走向的四个方向的边缘的捕捉能力要强于主要突出水平和竖直的第一种滤波模板。

       总结

               一阶导数和二阶导数都有锐化图像,突出边缘的作用。区别可以归纳成三个:第一,一阶导数通常会产生较宽的边缘;第二,二阶导数对于阶跃性边缘中心产生零交叉,而对屋顶状的边缘,二阶导数取极值;第三,二阶导数对细节有较强的响应,如细线和孤立噪声点。

    原文链接:https://blog.csdn.net/baidu_41902768/article/details/94613788

    展开全文
  • 数字图像处理锐化原理Image sharpening might just be the most underutilized digital photography trick this side of studying thehistogram. Read on as we explain what image sharpening is, why we need it...
    数字图像处理锐化的原理

    数字图像处理锐化的原理

    Image sharpening might just be the most underutilized digital photography trick this side of studying the histogram. Read on as we explain what image sharpening is, why we need it, what it does, and why you should be liberally applying it to your own images to banish fuzzy edges and make your images pop.

    在研究直方图的这一方面,图像锐化可能只是利用最多的数码摄影技巧。 在我们解释什么是图像锐化,为什么需要它,它做什么以及为什么应该将它自由地应用到自己的图像上以消除模糊边缘并使图像弹出时,请继续阅读。

    为什么图像恰恰是模糊的? (Why Exactly Are Images Fuzzy in the First Place?)

    Before we dig into how to sharpen your images it is important to understand exactly why digital images even require sharpening in the first place. Digital images, both those created in a digital camera and by scanning images to create digital copies of analog works, suffer from limitations imposed by the digital device’s sensor.

    在我们研究如何锐化图像之前,重要的是要准确地理解为什么数字图像甚至首先需要锐化。 数字图像,无论是在数码相机中创建的图像还是通过扫描图像以创建模拟作品的数字副本的数字图像,都受到数字设备传感器施加的限制。

    While the limitations of the sensors in comparison with the human eye are numerous there is one particular limitation that creates overly soft or fuzzy images. The human eye is able to distinguish lines of contrast with incredible clarity and sharpness. The sensor of a digital camera, however, is limited by the number of pixels, or points of data, it can collect.

    尽管与人眼相比,传感器的局限性很多,但存在一种特别的局限性,即会产生过于柔和或模糊的图像。 人眼能够以令人难以置信的清晰度和清晰度区分对比线。 但是,数码相机的传感器受到它可以收集的像素数或数据点的限制。

    When the scene before it is higher resolution than it can capture (which it always is) it is forced to capture the average of what the individual pixels on the sensor see. The result is a fuzzing of images as the camera (or scanner) is forced to do the best it can with the limited amount of data it can capture.

    当其之前的场景的分辨率高于其可以捕获的分辨率(通常是这样)时,它将被迫捕获传感器上各个像素所见的平均值。 结果是图像模糊不清,因为相机(或扫描仪)被迫在有限的可捕获数据量下尽其所能。

    Let’s look at some digital mockups of this phenomenon to demonstrate the effect before moving on to working with actual photos. In the image below we’ve divided the space into two triangles, one black and one white.

    在继续处理实际照片之前,让我们看一下这种现象的一些数字模型,以证明这种效果。 在下图中,我们将空间分为两个三角形,一个黑色和一个白色。

    When viewed at a distance on your typical screen it looks like one crisp and continuous line between the black and white sections. Let’s pretend for the sake of demonstration that the image above is not a digital picture presented to you on a digital screen but the intersection of two spaces in the real world. Say two halves of a canvas that have been painted with extreme precision such that, even when viewed at a very close distance with a magnifying glass in hand, the line remains crisp and distinct. This line, then, is resolved by our eyes to its maximum resolution and we perceive it as very sharp and crisp.

    在典型屏幕上远距离观看时,黑色和白色部分之间看起来像一条清晰而连续的线。 为了演示起见,我们假装上面的图像不是在数字屏幕上呈现给您的数字图片,而是现实世界中两个空间的交集。 说出两等分的油画,它们以极高的精确度进行了绘制,因此,即使使用放大镜在很近的距离处观看,线条仍保持清晰鲜明。 然后,这条线被我们的眼睛分辨为最大分辨率,我们认为它非常清晰锐利。

    Let’s view the same mockup of two triangles as if it were captured by a very low-resolution image sensor. While the image above contains nearly 200,000 pixels, the image below is a representation of black and white space as if the degree of resolution was barely over 200 pixels.

    让我们查看两个三角形的相同模型,就好像它们是由非常低分辨率的图像传感器捕获的一样。 尽管上面的图像包含近200,000像素,但是下面的图像代表了黑白空间,好像分辨率只有不到200像素。

    We know if the delineating line between the white and black area is razor sharp to the human eye then it should be razor sharp in the camera, right? The problem is when that razor sharp delineation is so fine it passes through a given pixel on the camera’s sensor the individual pixel cannot say, “OK, half of me is white, half of me is black.”

    我们知道,如果白色和黑色区域之间的轮廓线对人眼来说很锋利,那么在相机中应该也很锋利,对吗? 问题是,当剃刀的锐利轮廓非常精细时,它会穿过相机传感器上的给定像素,而单个像素不能说:“好,我一半是白人,一半是黑色。”

    It can only record a single value for the entire pixel. As such it is forced to say, “OK, the average of the light hitting me is gray” because it cannot record part black and part white but merely the average of the photons hitting the individual pixel.

    它只能记录整个像素的单个值。 因此,不得不说:“好的,打到我身上的光的平均值是灰色的”,因为它不能记录部分黑色和白色,而只能记录到单个像素的光子的平均值。

    The more pixels you pack into a sensor the more detail you can resolve, but ultimately there comes a point in every digital image creation where the incoming data (the light bouncing off the subject being photographed or the photo being scanned) exceeds the capability of the sensor, the individual pixels are resigned to selecting a best-estimate-shade, and the contrast between the edges is blurred.

    装在传感器中的像素越多,您可以解决的细节就越多,但是最终在每个数字图像创建中都会出现一点,即传入的数据(从被摄物体或正在扫描的照片反射回来的光)超出了图像处理能力。传感器,将各个像素指定为选择最佳估计阴影,并且边缘之间的对比度模糊。

    使用不清晰的蒙版修复模糊照片 (Fixing Fuzzy Photos with the Unsharp Mask)

    Now that we know what causes fuzzy photos, let’s look at what you can do to fix the issue and give your images a sharpness that really helps them pop (whether you’re framing them or uploading them to Facebook).

    现在我们知道了导致照片模糊的原因,让我们看看如何解决此问题并为图像提供清晰的清晰度,可以真正帮助它们弹出(无论是构图还是将其上传到Facebook)。

    Fortunately for us the concept we just outlined in the previous section is well known and understood in the photographic community and there are multiple ways to approach correcting it. The most common way, and the way we’ll focus on today, is applying what is known as an “unsharp mask.”

    对我们来说幸运的是,我们在上一节中概述的概念在摄影界已广为人知和理解,并且有多种方法可以对其进行校正。 最常见的方式以及我们今天将重点关注的方式是应用所谓的“不清晰蒙版”。

    The counterintuitively named unsharp mask becomes a little more intuitively named if you understand how the process works. When you apply the unsharp mask to an image the editing application creates a temporary mask used to compare which areas of of the image are sharp (with high contrast) and unsharp (with low contrast). It then sharpens the unsharp areas (using that mask as a guide) until it difference between the high contrast and low contrast areas have equalized per the specification of the user. Thus, the unsharp mask isn’t an unsharpening tool, as the name might imply at first glance, but a tool that tells you which parts of the image are unsharp and corrects them.

    如果您了解该过程的工作原理,则反直觉命名的锐化蒙版会更直观地命名。 当您将不清晰的蒙版应用于图像时,编辑应用程序会创建一个临时蒙版,用于比较图像的哪些区域清晰(具有高对比度)和不清晰(具有低对比度)。 然后,它会锐化不清晰的区域(以该蒙版为指导),直到高对比度区域和低对比度区域之间的差值已根据用户的要求进行了补偿。 因此,反锐化蒙版并不是一个锐化工具,顾名思义,它并不是一个锐化工具,而是一个告诉您图像的哪些部分不锐化并进行校正的工具。

    Let’s enlist the help of our friendly office dog Cricket, seen above, to demonstrate exactly how the unsharp mask works and the adjustments we can make to it. Although we’ll be using Adobe Photoshop for the demonstration today the unsharp mask tool is found in a wide variety of image editing applications as it is something of an industry standard. The terms and methods you’ll see here apply just as readily to free editing solutions like GIMP as they do to Photoshop.

    让我们征集上面所见的友好的办公室狗cket的帮助,以准确演示不清晰的蒙版如何工作以及我们可以对其进行的调整。 尽管今天我们将使用Adobe Photoshop进行演示,但是在各种图像编辑应用程序中都发现了锐化蒙版工具,因为它是行业标准。 您将在此处看到的术语和方法就像适用于GIMP的免费编辑解决方案一样,也适用于Photoshop。

    First, let’s study the photo. The image above, straight from the camera without any editing, is simply reduced in size for insertion into this article. Nothing wrong with the photo at all. The subject is centered, the face of the subject is in focus, there’s nothing particularly objectionable about it (unless, you know, you don’t care for small dogs). But let’s zoom in and take a look at the image in closer detail.

    首先,让我们研究照片。 上面的图像直接来自相机,没有任何编辑,只是将尺寸减小了,可以插入本文。 照片完全没错。 主题居中,主题面部清晰,没有什么特别令人讨厌的(除非您知道,您不在乎小狗)。 但是,让我们放大并更仔细地查看图像。

    When we get in really close, it becomes obvious that the image is very soft looking. That’s not the fault of the lens (we shot this image with a very sharp prime lens) but a side effect of the way the image is processed in camera, as we previously discussed.

    当我们真正靠近时,很明显图像看起来很柔和。 如前所述,这不是镜头的问题(我们使用非常锋利的定焦镜头拍摄了此图像),而是在相机中处理图像的方式的副作用。

    To sharpen the image, let’s fire up the unsharp mask. First, prepare for the unsharp mask by adjusting your image to either 100 percent or 50 percent zoom; anti-aliasing algorithms in use by both the editor and your operating system can distort the effects of the sharpening process at other zoom levels.

    要锐化图像,让我们启动不清晰的蒙版。 首先,通过将图像调整为100%或50%缩放来准备不清晰的蒙版; 编辑器和操作系统同时使用的抗锯齿算法可以使锐化过程在其他缩放级别上的效果失真。

    In Photoshop you’ll find it under Filters ->Sharpen -> Unsharp Mask.

    在Photoshop中,可以在“滤镜”->“锐化”->“锐化蒙版”下找到它。

    As we mentioned above, the appearance of the unsharp mask tool is fairly universal and you’ll find the three settings, Amount, Radius, and Threshold, regardless of the image editing tool you’re using. The easiest way to understand what they do is to simply play around with them, but we’ll highlight the key points here.

    如上所述,不清晰的蒙版工具的外观相当通用,无论使用哪种图像编辑工具,您都可以找到三个设置:数量,半径和阈值。 了解他们的工作的最简单方法是简单地与他们一起玩耍,但是我们将在此处重点介绍要点。

    Amount: Always listed as a percentage, the amount indicates the degree of adjustment (how much light the lighter edges get and how dark the darker edges get). At the low end of the adjustment it’s difficult to notice but when you max it out the contrast becomes very extreme. 50-100 percent is a safe place to start.

    数量:始终以百分比形式列出,该数量表示调整的程度(较浅边缘得到多少光,较暗边缘得到多少暗)。 在调整的低端,很难注意到,但是当您将其最大化时,对比度变得非常极端。 50-100%是一个安全的起点。

    Radius: Specifies how large an area around each corrected point the effect is applied. The radius and the amount are intertwined; if you reduce your Amount value you can increase your Radius value (and vice versa). Increasing both to high levels will lead to significant color and contrast distortion (which may be a desirable artistic effect but will not make for a natural looking image).

    半径:指定要应用效果的每个校正点周围的面积。 半径和数量交织在一起; 如果减少金额值,则可以增加半径值(反之亦然)。 将两者都增加到高水平将导致明显的色彩和对比度失真(这可能是理想的艺术效果,但不会使图像看起来自然)。

    Threshold: The threshold function determines where the sharpening algorithm will be applied based on a minimum brightness/contrast level. This particular setting is very useful for selectively increasing contrast in high contrast areas (such as around the eyes) but not over-sharpening areas you want to leave smooth (such as skin on the face). The lower the value the more the image will be uniformly sharpened. The higher the value the more areas will be excluded. Thus, if you wanted the whole image to have the sharpening effect applied as uniformly as possibly you would set it to zero and if you wanted to sharpen the details on a subject’s face (like the pattern of their iris and eye lashes) without making their pores and wrinkles stand out, you would increase the value until you achieved the desired balance.

    阈值:阈值功能基于最小亮度/对比度级别确定将在哪里应用锐化算法。 此特定设置对于在高对比度区域(例如,眼睛周围)有选择地增加对比度非常有用,但对于想要保持平滑的过度锐化的区域(例如,脸上的皮肤)而言,则不是非常有用。 值越低,图像将越清晰均匀。 值越高,将排除的区域越多。 因此,如果您希望整个图像尽可能均匀地应用锐化效果,则可以将其设置为零,并且如果要锐化主体面部的细节(例如虹膜和睫毛的图案)而又不使其毛Kong和皱纹脱颖而出,您可以增加其价值,直到达到所需的平衡。

    You’ll also notice that we have the little preview window also set to 50 percent (the same anti-aliasing issues apply both to previewing the whole image and to previewing the image in the Unsharp Mask box.

    您还将注意到,我们的小预览窗口也设置为50%(相同的抗锯齿问题适用于预览整个图像和“不清晰蒙版”框中的图像预览。

    Applying the settings we have above (100/4/3 for this particular image) significantly sharpens the image; let’s take a look at the exact same crop we did above to see the difference.

    应用上面的设置(此特定图像为100/4/3)可以使图像锐化; 让我们来看看上面所做的完全相同的作物,以了解差异。

    Seen close up, the changes are readily apparent. There is a much higher contrast around the eyes, the highlights in the eyes are sharper, and the fur of the muzzle and face is more distinct.

    看起来很近,这些变化显而易见。 眼睛周围的对比度更高,眼睛的高光更清晰,枪口和脸部的毛发更加明显。

    When viewed with the same crop as the original retouched image the changes are less dramatic (as they are not seen in such a close up manner) but they make the details in the image, like the fur around the muzzle, stand out.

    当以与原始润饰图像相同的裁剪查看时,变化不太明显(因为无法以近距离的方式看到它们),但是它们使图像中的细节(如枪口周围的毛皮)突出。

    That’s the real goal of sharpening an image. You want to recreate the sharpness of the actual subject as seen with the human eye but not create such intense and noticeable contrast that the viewer wonders what kind of manipulation was performed on the photo.

    那是锐化图像的真正目的。 您想要重现人眼所见的实际主体的清晰度,但又不想产生如此强烈和明显的对比度,以至于观看者不知道对照片进行了哪种操作。

    While we’re looking at the photo, it’s important to point out what the unsharp mask cannot do. It makes the focused area of a photo look better focused by sharpening up the edges and giving it a crisp look but it cannot add in detail that doesn’t exist. You’ll notice that in the above photo the eyes, muzzle, and nose became sharper (as well as the fur of the surrounding face) but the leash, concrete, moss, and leaves did not. Those objects were so far out of focus in the original photograph that no amount of sharpening could create even the illusion of them being in the focal plane.

    在查看照片时,务必指出不清晰的蒙版无法完成的工作。 通过锐化边缘并赋予其清晰的外观,可以使照片的聚焦区域看起来更好地聚焦,但是无法添加不存在的细节。 您会注意到,在上一张照片中,眼睛,枪口和鼻子变得更加锋利(以及周围脸部的毛皮),但皮带,混凝土,苔藓和树叶却没有。 这些物体在原始照片中的焦点太远了,以至于锐化都不会产生任何幻觉,即使它们在焦平面中也是如此。

    锐化蒙版技巧和窍门 (Unsharp Mask Tips and Tricks)

    Although people and animals benefit from application of the unsharp mask (especially around the eyes which look much better when crisp and bright instead of soft focused) the unsharp mask really helps just about every image pop.

    尽管人和动物都受益于使用不清晰蒙版(特别是在眼睛周围,当眼睛明亮而明亮时看起来更好,而不是柔焦),但不清晰蒙版确实可以帮助几乎所有弹出的图像。

    In the comparison above, for example, there’s nothing wrong with the image on the left but once the softness is corrected for with the unsharp mask the increased contrast in the right image really helps the image stand out and gives it a nice crisp appearance.

    例如,在上面的比较中,左侧图像没有任何问题,但是一旦使用了不鲜明的蒙版校正了柔软度,右侧图像中增强的对比度确实有助于图像突出并提供清晰的外观。

    To get the most from your unsharp mask application, regardless of the subject, let’s run through some tips and tricks that ensure the sharpening process is a smooth one.

    为了从不清晰的蒙版应用程序中获得最大收益,而不论主题如何,让我们来看一些技巧和窍门,以确保锐化过程是一个平滑的过程。

    Disable in-camera sharpening. Above all else you want to disable in-camera sharpening. Point and shoot cameras almost always have onboard sharpening whereas high-end DSLR cameras rarely do (the presumption on the the part of the manufacturer is that the point and shoot user will not be doing any post-processing work whereas the owner of the DSLR most likely will). Photos double processed with an unsharp mask tend to look pretty awful so it’s best if you disable in-camera and fine tune the sharpening on your computer.

    禁用相机内锐化。 首先,您要禁用相机内锐化。 傻瓜相机几乎总是在板上锐化,而高端数码单反相机很少这样做(制造商方面的假设是傻瓜用户将不进行任何后期处理工作,而数码单反相机的所有者则是大多数可能会)。 使用不清晰的蒙版进行双重处理的照片看起来非常糟糕,因此最好禁用相机内的摄像头并对其进行微调。

    Focus is king. A crisp physical focus in the camera is worth more than any unsharp mask can give you. Perfect your focus skills (and ditch your lens if its loose and soft in focus). As we mentioned above there’s no magical way to use the unsharp mask to expand or fix the focal plane of a photo; you can only sharpen what is already in focus.

    焦点为王。 相机中清晰的物理焦点比任何不清晰的蒙版都能给您带来更多的价值。 完善您的对焦技巧(如果镜头松散而柔和,则不使用它)。 正如我们上面提到的,没有任何一种神奇的方法可以使用模糊蒙版来扩展或固定照片的焦平面。 您只能锐化已经聚焦的内容。

    Less is more. Use the unsharp mask just enough to give the image a little pop. Think of the difference between looking at a 1080p display and a 4K display. The 1080p image is beautiful and very much high definition (compared to old standard definition televisions) but the 4K has this sharpness that just bursts right off the screen. When you’re adjusting and comparing your photos you want to capture just-right sharpness increase that moves the image from “Yeah, that’s nice.” to “Wow, that’s crisp.” It’s a fine line, though; once you hit that sweet spot further increasing the sharpening often yields an uncanny to outright unnatural looking image.

    少即是多。 刚好使用不清晰的蒙版以使图像有点弹出。 考虑一下观看1080p显示器和4K显示器之间的区别。 1080p图像很漂亮,并且具有很高的清晰度(与旧的标清电视相比),但是4K的清晰度却恰到好处地在屏幕上突然破裂。 在调整和比较照片时,您想要捕获恰到好处的清晰度,从而将图像从“是的,很好。” 改为“哇,真好吃。” 不过,这是一条好线; 一旦达到最佳效果,锐化效果通常会进一步提高,从而使图像看起来异常自然。

    Sharpen last. If you’re doing any other image editing, color adjustment, fixing dust, or stuck pixels, or otherwise editing the image, you always save the sharpening process for last. Think of sharpening an image as polishing a piece of jewelry after you’ve finished working on it. It’s the last step after every piece is placed, every bit of metal bent and soldered, and the it’s ready for the gallery.

    最后锐化。 如果您要进行其他图像编辑,颜色调整,固定灰尘或残留的像素,或以其他方式编辑图像,则始终保留最后的锐化过程。 在完成处理后,将锐化图像视为抛光珠宝。 这是摆放每件作品,弯曲并焊接每块金属之后的最后一步,并且已准备就绪供画廊使用。

    Armed with an understanding of the sharpening process and how to best take advantage of it, you’re ready to apply it to your own photos to turn good (albeit soft) photos into eye catching ones that really pop off the screen, living room wall, or wherever they should find themselves.

    了解了锐化过程以及如何最好地利用它之后,您就可以将其应用于自己的照片,以将优质(尽管柔和)的照片变成引人注目的照片,这些照片确实会从屏幕,客厅墙壁上弹出,或者他们应该找到自己的地方。



    Have a pressing question about image editing, photography, or getting the most from your digital camera? Shoot us an email as ask@howtogeek.com and we’ll do our best to answer it.

    对于图像编辑,摄影或从数码相机中获得最大收益,有一个紧迫的问题吗? 向我们发送电子邮件,电子邮件为ask@howtogeek.com,我们将尽最大努力予以答复。

    翻译自: https://www.howtogeek.com/215920/htg-explains-what-digital-image-sharpening-is-and-why-you-should-be-doing-it/

    数字图像处理锐化的原理

    展开全文
  • Python: PS 滤镜--USM 锐化

    千次阅读 2017-10-25 19:34:21
    本文用 Python 实现 PS 滤镜中的 USM 锐化效果,具体的算法原理和效果可以参考之前的博客:http://blog.csdn.net/matrix_space/article/details/51169960import matplotlib.pyplot as plt from skimage import io ...
  • Roberts算子Roberts算子即为交叉微分算法,它是基于交叉差分的梯度算法,通过局部差分计算...在Python中,Roberts算子主要是通过Numpy定义模板,再调用OpenCV的filter2D()函数实现边缘提取。该函数主要是利用内核实...
  • 前面一篇文章我讲解了Python图像量化、采样处理及图像金字塔。本文主要讲解图像傅里叶变换的相关内容,在数字图像处理中,有两个经典的变换被广泛应用——傅里叶变换和霍夫变换。其中,傅里叶变换主要是将时间域上的...
  • 1.2 锐化过程 使用拉普拉斯过滤器得到图像中灰度突变的区域$\nabla^{2} f(x, y)$ 使用原图像加上$\nabla^{2} f(x, y)$,如下 $$ g(x, y)=f(x, y)+c\left[\nabla^{2} f(x, y)\right] $$ 其中c为可变参数 2...
  • Python+OpenCV拉普拉斯图像锐化这一篇博客是我实现代码的基础,但博主给出的代码到后期无法实现拉普拉斯变化,而且灰度图像比较繁琐,因此我做一部分的改进。 原理参考 拉普拉斯滤波实现图像增强 代码实现 # -*-...
  • 其作用原理和均值滤波器类似,都是取滤波器窗口内的像素的均值作为输出。其窗口模板的系数和均值滤波器不同,均值滤波器的模板系数都是相同的为1;而高斯滤波器的模板系数,则随着距离模板中心的增大而系数减小。...
  • 这真是一件悲剧的事,早上,我花了很长时间写了这篇文章当我快要完成时,然后电脑就蓝屏了,重启后,一切都成了浮云好啦,没耐心再写那么多了,尽量简单吧在图像识别中,需要有边缘鲜明的图像,即图像锐化。图象锐化...
  • 该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。...
  • 在图像识别中,需要有边缘鲜明的图像,即图像锐化。 图象锐化的目的是为了突出图像的边缘信息,加强图像的轮廓特征,以便于人眼的观察和机器的识别。 在空间域进行图象锐化主要有以下方法 梯度算子其他锐化...
  • 图像增强目的使得模糊图片变得更加清晰、图片模糊的原因是...本文将对每种方法 简单介绍一下,并借助于 Python 、OpenCV 进行代码实现,提前说一下哈,下面处理的图像对象都是单通道灰度图,不是三通道彩色图! 1,线
  • + np.abs(image[i+1][j]-image[i][j+1]) return image_new 二、Sobel算子 采用梯度微分锐化图像,同时会使噪声、条纹等得到增强, Sobel算子则在一定程度上克服了这个问题。Sobel算子法的基本原理是:计算3×3窗口的...
  • 本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的、不同方法的处理,以达到对图像进行去噪、锐化等一系列的操作。...
  • CV:计算机视觉技术之图像基础知识(二)—以python的skimage和numpy库来了解计算机视觉图像基础(图像存储原理-模糊核-锐化核-边缘检测核,进阶卷积神经网络(CNN)的必备基础) 目录 图像如何存储到计算机中?...
  • 本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的、不同方法的处理,以达到对图像进行去噪、锐化等一系列的操作。...
  • 本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的、不同方法的处理,以达到对图像进行去噪、锐化等一系列的操作。...
  • 参考了https://www.bilibili.com/video/av24998616/?p=9 ... https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_filtering/py_fil...
  • 前面一篇文章详细讲解了素描特效、怀旧特效、光照特效、流年特效以及滤镜特效,代码通过Python和OpenCV实现。本篇文章将分享图像分类原理,并介绍基于KNN、朴素贝叶斯算法的图像分类案例。基础性文章,希望对你有所...
  • python版本:python3.5.4 ;opencv-python版本:opencv-python3.4.2.17使用的开发环境是jupyter notebook,是一个python的交互式开发环境,测试十分方便,并集成了vim操作,安装教程可参考:...
  • 本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的、不同方法的处理,以达到对图像进行去噪、锐化等一系列的操作。...
  • Unsharp Mask(USM)锐化算法的的原理及其实现通过增强图像的高频部分的内容,图像的视觉效果可以极大的得到改观。为达到这个目的,通常可以使用经典USM技术来实现。这个技术的流程可用下图来实现: 用具体的公式表达...
  • 本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的、不同方法的处理,以达到对图像进行去噪、锐化等一系列的操作。...
  • 低通滤波器是模糊,高通滤波器是锐化 低通滤波器就是允许低频信号通过,在图像中边缘和噪点都相当于高频部分,所以低通滤波器用于去除 噪点、平滑和模糊图像。高通滤波器则反之,用来增强图像边缘,进行锐化处理。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 863
精华内容 345
关键字:

python锐化原理

python 订阅