图像处理中的边缘检测,其数学的本质思想是求梯度,梯度变化大,说明灰度相差很大,即边缘。为此我编写了一个算子演示器。
此演示器采用python语言编写,核心用到了numpy来进行算子对图像进行卷积运算。
运算过程:
1,先将图片变成灰度图片
img = Image.open(img_path)
img = img.convert("L")
2,确定卷积核,对图像进行卷积运算
图形界面编程:
图形界面采用python的tkinter来进行编程
import tkinter as tk
from tkinter import filedialog
filedialog 主要是用来询问选择文件的路径
首先是算子区域的制作思路
要对entry中的值进行获取
需要先定义变量(在此我只定义整型变量)
en1_1 =tk.IntVar()
en1_2 =tk.IntVar()
en1_3 =tk.IntVar()
en2_1 =tk.IntVar()
en2_2 =tk.IntVar()
en2_3 =tk.IntVar()
en3_1 =tk.IntVar()
en3_2 =tk.IntVar()
en3_3 =tk.IntVar()
并将上面的9个变量存入一个列表中
var_list = [en1_1,en1_2,en1_3,en2_1,en2_2,en2_3,en3_1,en3_2,en3_3]
并对其进行初始值的定义
打开文件函数
将之前输入的算子记录下来的函数
利用Scrollbar。
当点击输入历史按钮的时候便弹出一个新的窗口,显示已经输入的历史
当点击 使用此算子按钮时,get_listbox_value函数便会运行,进而更新算子的值。
最后将经过卷积的图像显示出来即可。
最后我们可以自己修改算子对图片进行运算。
以上就是常见的算子对图像的处理结果。最后一张是高斯算子处理后的图片。第一张是水平边缘检测,第二张是竖直边缘检测。
领取专属 10元无门槛券
私享最新 技术干货