![](https://i-blog.csdnimg.cn/direct/8a34f4277820414781e831d5a465586a.png)
![](https://i-blog.csdnimg.cn/direct/4f29df7175ff4c3badafb473d2ecf615.png)
3.双击测试读入图片的按钮,进入按钮的点击事件。而后在解决方案资源管理器中右击项目名称,点击添加,新建一个类,取名为ImageHelper.cs
![](https://i-blog.csdnimg.cn/direct/26e3aec3a65c4f728aa68249436e1144.png)
4.在新建的类中,我们封装一个读取图片的方法ReadImage。
![](https://i-blog.csdnimg.cn/direct/3bd94416ac5743978fbf1719708abe4c.png)
5.回到刚才第一个按钮的点击事件中,我们引用刚才封装的ReadImage方法
![](https://i-blog.csdnimg.cn/direct/61f8a473ef50445caaaa7a30119d3ced.png)
6.运行代码,点击按钮,图片读取成功。测试成功
![](https://i-blog.csdnimg.cn/direct/3fe3648716c74196a7f705c40ff2edb8.png)
7.接着我们写阈值分割的方法。双击第二个按钮,进入点击事件。然后来到我们之前新建的ImageHelper.cs中,封装阈值分割的方法。
![](https://i-blog.csdnimg.cn/direct/54c991264be64d2ba0f93a77b4e96e4f.png)
8.但是因为既有阈值分割也有自动阈值分割,我们发现这样子参数太多,很麻烦且不方便管理,所以我们可以再建一个类(ThreSholdDef)用来封装这些参数,并通过构造函数进行实例化。
9.回到ImageHelp类中,重新写阈值分割的方法
![](https://i-blog.csdnimg.cn/direct/f1c646c39bd5499b93d729ce4f9fc0f9.png)
10.最后回到第二个按钮的点击事件中,引用封装的阈值分割的方法。
![](https://i-blog.csdnimg.cn/direct/b80f5751b5264ca58cc6385f400d4b81.png)
11.运行代码,进行测试,阈值分割成功,测试成功。
![](https://i-blog.csdnimg.cn/direct/3adc3eba541940329cde2ad1d8e27f49.png)