C#图像处理Word文档格式.docx
- 文档编号:17228391
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:23
- 大小:659.01KB
C#图像处理Word文档格式.docx
《C#图像处理Word文档格式.docx》由会员分享,可在线阅读,更多相关《C#图像处理Word文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
1;
<
Width;
x++)
y
Height;
y++)
r,
g,
b;
pixel
oldbitmap.GetPixel(x,
y);
r
255
-
pixel.R;
g
pixel.G;
b
pixel.B;
newbitmap.SetPixel(x,
y,
Color.FromArgb(r,
b));
}
this.pictureBox1.Image
newbitmap;
catch
(Exception
ex)
MessageBox.Show(ex.Message,
"
信息提示"
MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
二.
浮雕效果
对图像像素点的像素值分别与相邻像素点的像素值相减后加上128,
然后将其作为新的像素点的值.
//以浮雕效果显示图像
newBitmap
oldBitmap
pixel1,
pixel2;
0;
0,
pixel1
oldBitmap.GetPixel(x,
pixel2
oldBitmap.GetPixel(x
+
1,
1);
Math.Abs(pixel1.R
pixel2.R
128);
Math.Abs(pixel1.G
pixel2.G
Math.Abs(pixel1.B
pixel2.B
if
(r
>
255)
255;
0)
(g
(b
newBitmap.SetPixel(x,
newBitmap;
三.
黑白效果
彩色图像处理成黑白效果通常有3种算法;
(1).最大值法:
使每个像素点的
R,
G,
B
值等于原像素点的
RGB
(颜色值)
中最大的一个;
(2).平均值法:
使用每个像素点的
R,G,B值等于原像素点的RGB值的平均值;
(3).加权平均值法:
对每个像素点的
B值进行加权
---自认为第三种方法做出来的黑白效果图像最
真实"
.
//以黑白效果显示图像
b,
Result
//实例程序以加权平均值法产生黑白图像
iType
=2;
switch
(iType)
case
0:
//平均值法
((r
b)
/
3);
break;
1:
//最大值法
?
:
g;
2:
//加权平均值法
((int)(0.7
*
r)
(int)(0.2
g)
(int)(0.1
Color.FromArgb(Result,
Result,
Result));
);
四.
柔化效果
当前像素点与周围像素点的颜色差距较大时取其平均值.
//以柔化效果显示图像
bitmap
MyBitmap
//高斯模板
int[]
Gauss
={
2,
4,
1
};
Int
Index
row
-1;
row++)
MyBitmap.GetPixel(x
row,
col);
+=
pixel.R
Gauss[Index];
pixel.G
pixel.B
Index++;
/=
16;
//处理颜色值溢出
r
r;
0
bitmap.SetPixel(x
bitmap;
五.锐化效果
突出显示颜色值大(即形成形体边缘)的像素点.
实现代码:
锐化效果
//以锐化效果显示图像
//拉普拉斯模板
Laplacian
-1,
9,
-1
col
col++)
Laplacian[Index];
newBitmap.SetPixel(x
六.
雾化效果
在图像中引入一定的随机值,
打乱图像中的像素值
//以雾化效果显示图像
System.Random
MyRandom
Random();
k
MyRandom.Next(123456);
//像素块大小
dx
%
19;
dy
(dx
Width)
(dy
Height)
oldBitmap.GetPixel(dx,
dy);
pixel);
七.
光照效果
对图像中的某一范围内的像素的亮度分别进行处理.
//以光照效果显示图像
Graphics
MyGraphics
this.pictureBox1.CreateGraphics();
MyGraphics.Clear(Color.White);
MyBmp
Bitmap(this.pictureBox1.Image,
this.pictureBox1.Width,
this.pictureBox1.Height);
MyWidth
MyBmp.Width;
MyHeight
MyBmp.Height;
MyImage
MyBmp.Clone(new
RectangleF(0,
MyWidth,
MyHeight),
System.Drawing.Imaging.PixelFormat.DontCare);
A
2;
//MyCenter图片中心点,发亮此值会让强光中心发生偏移
Point
MyCenter
Point(MyWidth
2);
//R强光照射面的半径,即”光晕”
R
Math.Min(MyWidth
i
i--)
j
j--)
float
MyLength
(float)Math.Sqrt(Math.Pow((i
MyCenter.X),
2)
Math.Pow((j
MyCenter.Y),
2));
//如果像素位于”光晕”之内
(MyLength
R)
MyColor
MyImage.GetPixel(i,
j);
//220亮度增加常量,该值越大,光亮度越强
MyPixel
220.0f
(1.0f
R);
MyColor.R
(int)MyPixel;
Math.Max(0,
Math.Min(r,
255));
MyColor.G
Math.Min(g,
MyColor.B
Math.Min(b,
//将增亮后的像素值回写到位图
MyNewColor
Color.FromArgb(255,
b);
MyImage.SetPixel(i,
j,
MyNewColor);
//重新绘制图片
MyGraphics.DrawImage(MyImage,
Rectangle(0,
MyHeight));
八.百叶窗效果
(1).垂直百叶窗效果:
根据窗口或图像的高度或宽度和定制的百叶窗显示条宽度计算百叶窗显示的条数量
;
根据窗口或图像的高度或宽度定制百叶窗显示条数量计算百窗显示的条宽度.
(2).水平百叶窗效果:
原理同上,只是绘制像素点开始的坐标不同.
垂直百叶窗
//垂直百叶窗显示图像
(Bitmap)this.pictureBox1.Image.Clone();
dw
MyBitmap.Width
30;
dh
MyBitmap.Height;
g.Clear(Color.Gray);
Point[]
MyPoint
Point[30];
MyPoint[x].Y
MyPoint[x].X
dw;
Bitmap(MyBitmap.Width,
MyBitmap.Height);
i++)
j++)
dh;
k++)
bitmap.SetPixel(MyPoint[j].X
i,
MyPoint[j].Y
k,
MyBitmap.GetPixel(MyPoint[j].X
k));
this.pictureBox1.Refresh();
System.Threading.Thread.Sleep(100);
水平百叶窗
button3_Click(object
//水平百叶窗显示图像
MyBitmap.Height
20;
MyBitmap.Width;
Point[20];
MyPoint[y].X
MyPoint[y].Y
k,
i));
九.马赛克效果
确定图像的随机位置点和确定马赛克块的大小,然后马赛克块图像覆盖随机点即可.
马赛克效果
//以马赛克效果显示图像
50;
Point[2500];
50
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 图像 处理