6.2.2 实现过程

6.2.2 实现过程

(1)图像读取及显示

创建读图功能的按钮,如图6-8所示。

图6-8 创建读图功能的按钮

如图6-8所示,首先建立一个GUI界面,命名为BwImage_Show。在界面左侧控件栏中单击“Push Button”,在界面上创建一个按钮来实现读图功能。再单击“Axes”,在界面上创建一个坐标轴,用来显示图像。然后按照上文的介绍,修改按钮的控件属性,将其String属性修改为Read Image,将其Tag属性修改为Read_image。之后右击“Read Image”按钮,选择“View Callback”进入对应的回调函数。这样,就可以在其对应的函数下添加实现读图功能的程序段了:

运行程序将会显示图6-9所示的界面,单击之前创建的“Read Image”按钮,读取名称为“ring.bmp”的图片文件,图片就会显示出来。

图6-9 GUI实现读图并显示

(2)图像二值化处理和显示

如前所述,图像二值化需要给出阈值,因此,在GUI窗口内需要设置可以输入的文本编辑框和可以拖动的滚动条分别完成阈值的输入。下面分别介绍两种方法的具体实现方法。

为GUI界面添加一个文本编辑框须使用Edit Text控件。在界面左侧控件栏中单击“ Edit Text”后,将其拖入右侧界面中,创建一个文本输入框,命名为threshold edit,如图6-10所示,同时将其String属性值设为0.5。再添加一个按钮(“ String”为Show BW Image,“Tag”为Show_bw_image )来实现二值化操作,其中的阈值就从文本输入框中读取。具体程序如下。

图6-10 使用Edit Text控件输入二值化阈值

对于不同的图像,所需要的阈值是不同的,如果想方便地对阈值进行调整,则可以使用Slider控件。在界面左侧控件栏中单击“Edit Text”,在界面上创建一个文本输入框,命名为threshold_slider,如图6-11所示,同时将其Value属性值设为128,调整范围设为0~255。在该控件下输入以下程序段即可实现灰度阈值的实时调整和二值化图像的实时显示,如图6-12所示。

图6-11 使用Slider控件输入二值化 阈值

图6-12 使用Slider实时调整阈值并显示

(3)二值化图像存储

回到GUI编辑界面,添加一个按钮(“String”为Save Image,“Tag”为Save_image)来实现二值化图像的存储,如图6-13所示。

图6-13 二值化图像的存储

运行程序文件,二值化后的图片将会保存在与原始文件相同的文件夹中,文件名称为BW_Image.bmp。