C#图像灰度化:提取像素法

news/2024/7/21 7:42:32 标签: c#, 图像处理

加载图像

//创建OpenFileDialog对象
 OpenFileDialog openFileDialog = new OpenFileDialog();

//创建一个筛选器
openFileDialog.Filter = "jpeg文件|*.jpg";

//设置对话框标题
openFileDialog.Title = "打开图片:";

//启用帮助按钮
openFileDialog.ShowHelp = true;

//如果结果为打开,则选定文件
if (openFileDialog.ShowDialog()==DialogResult.OK)
 {
    curFileName = openFileDialog.FileName;
    curBitmap = (Bitmap)Image.FromFile(curFileName);
    Invalidate();
 }

在窗体中设置一个button
在button里面的代码如下

if (curBitmap!=null)
{
	Color curColor;
    int ret;//定义灰度值变量
    //二维图像数组循环
    for (int i = 0; i < curBitmap.Width; i++)
    {
    	for (int j = 0; j < curBitmap.Height; j++)
    	{
    		//获取该点像素的RGB值
    		curColor = curBitmap.GetPixel(i, j);
    		//利用公式计算灰度值
    		ret = (int)(curColor.R * 0.299 + curColor.G * 0.587 + curColor.B * 0.114);
    		//设置该点像素的灰度值R=G=B=ret
    		curBitmap.SetPixel(i, j, Color.FromArgb(ret, ret, ret));
    	}
    }
    Invalidate();
}

在paint事件中写如下代码:

Graphics graphics = e.Graphics;
if (curBitmap != null)
{
    graphics.DrawImage(curBitmap, 160, 20, curBitmap.Width, curBitmap.Height);
}

http://www.niftyadmin.cn/n/1783404.html

相关文章

全局函数做友元

1.目的&#xff1a;让一个函数或者类访问另一个类中的私有成员 2.关键字&#xff1a;friend 3.友元的三种实现&#xff1a; 全局函数做友元类做友元成员函数做友元 #include<iostream> using namespace std; #include<string>class Home {// goodfriend全局函数…

黄聪:wordpress用httpd.ini伪静态不支持中文解决办法

httpd.ini怎么写&#xff0c;就不说了&#xff0c;网上一搜一大堆&#xff0c;基本上都是一样的&#xff0c;都可以的。一般标准模板都是&#xff1a; [ISAPI_Rewrite]#36001hourCacheClockRate 3600RepeatLimit 32#Protect httpd.ini and httpd.parse.errors files#from acces…

C#图像灰度化:内存法

//打开图片 //创建OpenFileDialog对象OpenFileDialog openFileDialog new OpenFileDialog();//创建一个筛选器openFileDialog.Filter "jpeg文件|*.jpg";//设置对话框标题openFileDialog.Title "打开图片:";//启用帮助按钮openFileDialog.ShowHelp tru…

专家教你如何科学跑步

根据调查数据显示&#xff0c;47%的市民跑步是为了舒缓压力及对抗疲劳&#xff0c;促进新陈代谢和强壮体质&#xff0c;以减肥和增重为目的的市民分别占到了25&#xff05;和26&#xff05;。在跑步频率方面&#xff0c;53%的人却由于对跑步的不了解&#xff0c;原本想缓解疲劳…

类做友元

1.类做友元 #include<iostream> using namespace std; #include<string>//类做友元 class Home;class Goodfriend { public:Goodfriend();Home *home;void vist();//参观函数&#xff0c;访问home的属性 };class Home {//Goodfriend类是本类的好朋友&#xff0c;可…

C--valgrind

1.简介 Valgrind工具集提供一系列调试和分析工具&#xff0c;使用户的程序运行更快更正确。其中最流行的工具是Memcheck,它能够检测到在C/C程序中可能导致崩溃和不可预测的诸多内存相关错误&#xff01; 2.程序准备 使用Gcc编译器&#xff0c;同时加上-g参数进行&#xff1b;以…

C#图像灰度化:指针法

//打开图片private void button1_Click(object sender, EventArgs e){//创建OpenFileDialog对象OpenFileDialog openFileDialog new OpenFileDialog();//创建一个筛选器openFileDialog.Filter "jpeg文件|*.jpg";//设置对话框标题openFileDialog.Title "打开图…

成员函数做友元

#include<iostream> using namespace std; #include<string>//类做友元 class Home;class Goodfriend { public:Goodfriend();Home *home;void visit();//让visit函数可以访问home的私有成员void visit2();//让visit2函数不可以访问home的私有成员 };class Home {/…