您的位置:首页 > 编程语言 > C#

用C#、Emgu写的一个显示图像、彩色变黑白、二值化的程序。

2011-12-24 15:16 1246 查看
using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using Emgu.CV;

using Emgu.Util;

using System.Runtime.InteropServices;

using System.Drawing.Imaging;

using Emgu.CV.Structure;

namespace ChuanLinVision

{

public partial class Main : Form

{

public Image<Bgr, byte> src;

public Image<Gray, byte> tempgraysrc;

public int thresholdValue=0;

public Main()

{

InitializeComponent();

}

private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)

{

OpenFileDialog opdlg = new OpenFileDialog();

opdlg.Filter = "BMP文件|*.bmp|Jpg文件|*.jpg|所有文件|*.*";

if (opdlg.ShowDialog()!=DialogResult.OK)

{

return;

}

Image<Bgr, byte> img = new Image<Bgr, byte>(opdlg.FileName);

pictureBox1.Image = img.ToBitmap();

src = img;

}

private void 保存ToolStripMenuItem_Click(object sender, EventArgs e)

{

SaveFileDialog sfdlg = new SaveFileDialog();

sfdlg.Filter = "BMP文件|*.bmp|Jpg文件|*.jpg|所有文件|*.*";

sfdlg.FilterIndex = 2;

sfdlg.RestoreDirectory = true;

if (sfdlg.ShowDialog()!=DialogResult.OK)

{

return;

}

string fname = sfdlg.FileName;

Image img = pictureBox1.Image;

Bitmap bmp = new Bitmap(img);

bmp.Save(fname, System.Drawing.Imaging.ImageFormat.Bmp);

}

private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)

{

this.Close();

}

private void 彩色转灰度ToolStripMenuItem_Click(object sender, EventArgs e)

{

Image<Gray, byte> grayimg = src.Convert<Gray, byte>(); //将源图像转换成灰度图像

pictureBox1.Image = grayimg.ToBitmap(); //显示灰度图像

tempgraysrc = grayimg;

}

private void 灰度二值化ToolStripMenuItem_Click(object sender, EventArgs e)

{

Image<Gray, byte> grayimg = src.Convert<Gray, byte>(); //将源图像转换成灰度图像

tempgraysrc = grayimg;

gray2d frm2d = new gray2d();

frm2d.ShowDialog();

int temp = frm2d.trackBar1.Value;

Image<Gray, Byte> imageThreshold = grayimg.ThresholdBinary(new Gray(temp), new Gray(255)); //对灰度图像二值化

pictureBox1.Image = imageThreshold.ToBitmap();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐