图像处理的基础代码

时间:2016-11-18 08:38:18
【文件属性】:
文件名称:图像处理的基础代码
文件大小:934B
文件格式:SLN
更新时间:2016-11-18 08:38:18
灰度翻转 private void 局部平滑ToolStripMenuItem_Click(object sender, EventArgs e) { if (_PixArray == null || _PixArryNew == null) { MessageBox.Show("请先打开图像!"); return; } //------_PixArray及其他三维数组存储结构为: //-------------_PixArray[颜色序列][行序列][列序列] for (int b = 0; b < openImg_Info.i_bands; b++)//RGB颜色层循环 { for (int l = 2; l < openImg_Info.i_lines - 2; l++)//图像行循环 { for (int s = 2; s < openImg_Info.i_samples - 2; s++)//图像列循环 { //在此处写你的代码 _PixArryNew[b][l][s] = (short)(255 - _PixArray[b][l][s]); } } } MessageBox.Show("处理完毕!"); foreach (Control ctrl in this.Controls) { ctrl.Enabled = false; } m_ThreadType = 3; backgroundWorker1.RunWorkerAsync(m_ThreadType); } private void 线性拉伸ToolStripMenuItem_Click(object sender, EventArgs e) { if (_PixArray == null || _PixArryNew == null) { MessageBox.Show("请先打开图像!"); return; } //------_PixArray及其他三维数组存储结构为: //-------------_PixArray[颜色序列][行序列][列序列] for (int b = 0; b < openImg_Info.i_bands; b++)//RGB颜色层循环 { for (int l = 2; l < openImg_Info.i_lines - 2; l++)//图像行循环 { for (int s = 2; s < openImg_Info.i_samples - 2; s++)//图像列循环 { int x, y, grey, scale; int greymin = 255; int greymax = 0; for (y = 0; y <= 199; y++) for (x = 0; x <= 319; x++) { grey = _PixArray[b][l][s]; if (grey > greymax) { greymax = grey; } if (grey < greymin) { greymin = grey; } } scale = (int)255 / (greymax - greymin); for (y = 0; y <= 199; y++) for (x = 0; x <= 319; x++) { grey = _PixArray[b][l][s] * scale; // WritePixel(x + 350, y, grey); } _PixArryNew[b][l][s] = (short)(255 - _PixArray[b][l][s]); } } } MessageBox.Show("处理完毕!"); foreach (Control ctrl in this.Controls) { ctrl.Enabled = false; } m_ThreadType = 3; backgroundWorker1.RunWorkerAsync(m_ThreadType); } private void 直方图均衡化ToolStripMenuItem_Click(object sender, EventArgs e)

网友评论