粘连字符分割算法的WPF界面

       我在Github上分享过一份关于验证码的粘连字符分割的源代码,该代码是基于C#完成的,观察不同验证码图片的分割效果需要修正程序,十分不便。近期将这份源码做成了WPF可视化界面,以方便有兴趣的同学更直观的认识相关算法。

       目前该程序的初步界面如下,可自由选取待处理图片,目前仅支持139*40以下的图片,可支持同时观察两个图片中间处理过程。图片中间处理过程包含Sauvola,OTSU,迭代法二值化算法,zhang-suen细化算法,粘连字符分割。
界面做的很粗糙,但是对于一个WPF新手而言,搭出这个界面也困难重重,相关算法在本博客中都有相应的文章专门介绍。本文主要记录WPF界面搭建过程的几个细节和目前遗留的问题点,以备后续查阅,本文所述的源代码地址:
https://github.com/livezingy/CaptchaProcess

captcha process wpf

      1. Bitmap转BitmapSource

      在WPF界面中,显示原始图像和处理后图像的控件均为image控件。在Image中显示图像需要用到BitmapSource格式的图像,但是二值化算法,细化算法处理之后的图像均为Bitmap格式,因此,我需要将Bitmap图像转换为BitmapSource格式,实现函数如下:

       2. WPF主窗口调用子窗口

       Sauvola算法中有两个参数可以调整,WPF界面中设置了一个子窗口可用于调整这两个参数,在主窗口中通过菜单项Setting–>Sauvola Parameter来调用此子窗口,调用方式的实现代码如下:

      3. 当前界面的遗留问题点

     
当前遗留的问题点与WPF的Combox控件有关:Combox选择与上一次相同的index时,不会触发
SelectionChanged事件;加载图像时,无法自动刷新当前选择的中间处理过程。当前遗留问题的原因均是因为我目前暂不知道该如何用代码来触发ComboxSelectionChanged事件,在此记录,后续有解决方案时再记录。

——————–20160914更新———————————————-

        经过热心网友的指点,在加载图片完成时调用Combox的SelectionChanged事件处理函数,即可实现加载图像时自动刷新中间处理过程,谢谢大拿的指点!代码已更新至Github。

——————–20160914更新———————————————-

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Fork me on GitHub