|
|
|
ทำโปรเจค Asp.Net(c#) รบกวนหน่อยครับ upload รูปเข้ามา แล้วตัดสีออกทั้งหมด ให้เหลือแต่เส้นขอบสีดำ |
|
|
|
|
|
|
|
ศึกษาดูก่อนครับอย่าเพิ่งจ้างเลยครับ ไม่ยากครับ ศึกษาพวก Image Processing ครับเกี่ยวกับเรื่อง Edge Detection ครับ พวกการ Convert ภาพครับ
Code (C#)
public static Bitmap EdgeDetection(Bitmap Image, float Threshold, Color EdgeColor)
{
System.Drawing.Bitmap TempBitmap = Image;
System.Drawing.Bitmap NewBitmap = new System.Drawing.Bitmap(TempBitmap.Width, TempBitmap.Height);
System.Drawing.Graphics NewGraphics = System.Drawing.Graphics.FromImage(NewBitmap);
NewGraphics.DrawImage(TempBitmap, new System.Drawing.Rectangle(0, 0, TempBitmap.Width, TempBitmap.Height), new System.Drawing.Rectangle(0, 0, TempBitmap.Width, TempBitmap.Height), System.Drawing.GraphicsUnit.Pixel);
NewGraphics.Dispose();
for (int x = 0; x < NewBitmap.Width; ++x)
{
for (int y = 0; y < NewBitmap.Height; ++y)
{
bool EdgeSet = false;
Color CurrentColor = NewBitmap.GetPixel(x, y);
if (y < NewBitmap.Height - 1 && x < NewBitmap.Width - 1)
{
Color TempColor = NewBitmap.GetPixel(x + 1, y + 1);
if (Math.Sqrt(((CurrentColor.R - TempColor.R) * (CurrentColor.R - TempColor.R)) +
((CurrentColor.G - TempColor.G) * (CurrentColor.G - TempColor.G)) +
((CurrentColor.B - TempColor.B) * (CurrentColor.B - TempColor.B))) > Threshold)
{
NewBitmap.SetPixel(x, y, EdgeColor);
}
EdgeSet = true;
}
if (y < NewBitmap.Height - 1&&!EdgeSet)
{
Color TempColor = NewBitmap.GetPixel(x, y + 1);
if (Math.Sqrt(((CurrentColor.R - TempColor.R) * (CurrentColor.R - TempColor.R)) +
((CurrentColor.G - TempColor.G) * (CurrentColor.G - TempColor.G)) +
((CurrentColor.B - TempColor.B) * (CurrentColor.B - TempColor.B))) > Threshold)
{
NewBitmap.SetPixel(x, y, EdgeColor);
}
EdgeSet = true;
}
if (x < NewBitmap.Width - 1&&!EdgeSet)
{
Color TempColor = NewBitmap.GetPixel(x + 1, y);
if (Math.Sqrt(((CurrentColor.R - TempColor.R) * (CurrentColor.R - TempColor.R)) +
((CurrentColor.G - TempColor.G) * (CurrentColor.G - TempColor.G)) +
((CurrentColor.B - TempColor.B) * (CurrentColor.B - TempColor.B))) > Threshold)
{
NewBitmap.SetPixel(x, y, EdgeColor);
}
EdgeSet = true;
}
}
}
return NewBitmap;
}
|
|
|
|
|
Date :
2010-01-03 00:21:24 |
By :
KohDev |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เพิ่มความรู้อย่างมากมายเลยครับ มันทำแบบนี้ได้ด้วย
|
|
|
|
|
Date :
2010-01-03 04:05:59 |
By :
iheerman |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เห่อๆ เดี๋ยวขอเอาไปลองด้วยคนครับ น่าสนใจดี นานๆ แวะเข้ามานี่ ได้ไรใหม่ๆ เยอะเลยครับ
|
|
|
|
|
Date :
2010-01-04 13:10:48 |
By :
HikhalU2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|