c#+EmguCv 图像灰度化
来源:互联网 发布:mac怎么关闭加密文件夹 编辑:程序博客网 时间:2024/06/07 18:21
刚刚入手c# ,并利用EmguCv 处理图像, 一时不知从何入手。首先看灰度化,代码如下:
namespace EmgCv_Demo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog Openfile = new OpenFileDialog();
if (Openfile.ShowDialog() == DialogResult.OK)
{
Image<Bgr, Byte> My_Image = new Image<Bgr, byte>(Openfile.FileName);
pictureBox1.Image = My_Image.ToBitmap(); // pictureBox1 只能够显示位图,因此必须进行转换
Image<Gray,byte> gray_image = My_Image.Convert<Gray,byte>(); ///灰度化函数
//Gray Image
for (int i = 0; i < 100; i++)
for (int j = 0; j < 100;j++ )
gray_image[i, j] = new Gray(255); //给灰度图像赋值 i is the row j is the col
//Gray Image
// Gray my_Gray = gray_image[10, 20];
//Gray to int
// int my_intensity = (int)my_Gray.Intensity;
//读取指定位置的灰度值
// int my_intensity = gray_image.Data[10, 20,0]; //读取指定位置的像素值
int my_intensity = (int)gray_image[10, 20].Intensity;
int kkk=0;
pictureBox2.Image = gray_image.ToBitmap(); // 显示灰度化后的图像
}
}
}
虽然实现了功能,还是有个问题不理解,为什么灰度化后的图像用matlab读出来还是三个通道?512*512*3 ,然而在这里用这个语句 gray_image[i, j] = new Gray(255); 也可以给灰度图像赋值?用 什么语句可以解决为只有512*512的图像?
参考文献
http://www.emgu.com/wiki/index.php/Setting_up_EMGU_C_Sharp
加上二值化代码
for (int i = 0; i < 512; i++)
for (int j = 0; j < 512;j++ )
if ((int)gray_image[i, j].Intensity>=123)
gray_image[i, j] = new Gray(255); //给灰度图像赋值
else
gray_image[i, j] = new Gray(0); //给灰度图像赋值
- c#+EmguCv 图像灰度化
- C#+emgucv学习过程记录之图像
- C#|RBG图像转灰度图像与图像灰度反转
- 【EMGUCV】图像的直方图均衡化增强
- 图像灰度化
- 彩色图像灰度化
- 灰度化图像
- OpenCV图像灰度化
- 图像灰度化处理
- 图像灰度化
- GDIPlus灰度化图像
- 图像灰度化
- OpenCV图像灰度化
- RGB图像灰度化
- 图像灰度化
- 灰度图像彩色化
- 灰度图像彩色化
- OpenCV灰度化图像
- 华为C/C++笔试题
- 【浅析】ActiveMQ传输文件的几种方式原理与优劣
- mesa
- java properties文件的读写
- UI 高级篇:UITableView总结笔记
- c#+EmguCv 图像灰度化
- 解决Android解析图片的OOM问题!!!
- POJ 3498 March of the Penguins
- 乘积能被10整除的概率
- 记一下jar class path 需要注意的问题
- 恶搞突然有人同一天饿一天
- JMS五种消息的发送/接收的例子
- PHP如何解决网站大流量与高并发的问题
- 反光镜反光镜的房间付定金打飞机