图像锐化 算子

DIP课程的一份作业,对图像的锐化处理的练习.
当中有许多细节的,以此记录一下
首先是计算边界上的处理:
1)原图像边界补0
2)原图像按照边缘像素补相邻像素的值
3)边缘像素不算,次边界算子算好后补齐

附上计算的代码:其中d是输入的矩阵 计算结果四舍五入到整数

import numpy as np
d=np.array([[1,2,7,9,4,3],[0,1,6,8,3,2],[7,6,15,18,9,8],[1,2,7,9,4,3],[1,2,7,9,4,3]])
 
def mySobel(myArray,x,y):
    Dx = (myArray[x+1,y-1]-myArray[x-1,y-1])+2*(myArray[x+1,y]-myArray[x-1,y])+(myArray[x+1,y+1]-myArray[x-1,y+1])
    Dy = (myArray[x-1,y+1]-myArray[x-1,y-1])+2*(myArray[x,y+1]-myArray[x,y-1])+(myArray[x+1,y+1]-myArray[x+1,y-1])
    r = (Dx**2+Dy**2)**0.5
    return r
 
for i in range(1,len(d)-1):
    for j in range(1,len(d[0])-1):
        print("({0},{1})→".format(i+1,j+1),int(mySobel(d,i,j)+0.5))
import numpy as np
d=np.array([[1,2,7,9,4,3],[0,1,6,8,3,2],[7,6,15,18,9,8],[1,2,7,9,4,3],[1,2,7,9,4,3]])
 
def myPrewitt(myArray,x,y):
    Dx = (myArray[x+1,y-1]-myArray[x-1,y-1])+(myArray[x+1,y]-myArray[x-1,y])+(myArray[x+1,y+1]-myArray[x-1,y+1])
    Dy = (myArray[x-1,y+1]-myArray[x-1,y-1])+(myArray[x,y+1]-myArray[x,y-1])+(myArray[x+1,y+1]-myArray[x+1,y-1])
    r = (Dx**2+Dy**2)**0.5
    return r
 
for i in range(1,len(d)-1):
    for j in range(1,len(d[0])-1):
        print("({0},{1})→".format(i+1,j+1),int(myPrewitt(d,i,j)+0.5))
import numpy as np
d=np.array([[1,2,7,9,4,3],[0,1,6,8,3,2],[7,6,15,18,9,8],[1,2,7,9,4,3],[1,2,7,9,4,3]])
 
def myRobert(myArray,x,y):
    Dx = abs(myArray[x+1,y+1]-myArray[x,y])
    Dy = abs(myArray[x+1,y]-myArray[x,y+1])
    r = (Dx+Dy)
    return r
 

for i in range(1,len(d)-1):
    for j in range(1,len(d[0])-1):
        print("({0},{1})→".format(i+1,j+1),int(myRobert(d,i,j)))
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容