Đăng nhập | Đăng ký
Đăng nhập , với với

Diễn đàn    Dotnet framework    Một số kỹ thuật xử lý hình ảnh trong dotnet  

Thành viênNội dung
awas


49  bài
29-11-2008 09:31:49
Chuyển 1 ảnh từ màu thành ảnh xám.

Công thức đơn giản

xám = (red + green + blue)/3

rồi áp tất cả 3 màu thành xám thế là xong.

public static Bitmap Grayscale(Bitmap source)
{
Bitmap bm = new Bitmap(source.Width, source.Height);
for (int y = 0; y < bm.Height; y++)
{
for (int x = 0; x < bm.Width; x++)
{
Color c = source.GetPixel(x, y);
int luma = (int)((c.R + c.G + c.B) / 3);
bm.SetPixel(x, y, Color.FromArgb(luma, luma, luma));
}
}

return bm;
}
 
awas


49  bài
29-11-2008 09:33:19
Cắt một phần ảnh từ vị trí x,y với độ rộng wid, hei. Hoặc cắt 1 đoạn ảnh được định nghĩa bởi rectangle.

public static Bitmap Select(Bitmap source, Rectangle rec)
{
Bitmap bmp = new Bitmap(rec.Width, rec.Height);
Graphics g = Graphics.FromImage(bmp);
g.DrawImage(source, 0, 0, rec, GraphicsUnit.Pixel);
g.Dispose();
return bmp;
}
 
awas


49  bài
29-11-2008 09:34:01
Thu nhỏ hoặc phóng to một ảnh

public static Bitmap Zoom(Bitmap source, int percent)
{
int wid = (percent * source.Width) / 100;
int hei = (percent * source.Height) / 100;
Bitmap bmp = new Bitmap(wid, hei);
Graphics g = Graphics.FromImage(bmp);
g.DrawImage(source, 0, 0, wid, hei);
g.Dispose();
return bmp;
}
---
 
awas


49  bài
29-11-2008 09:37:30
Lựa chọn 1 vùng giống magic wand trong photo shop

Đây là kỹ thuật khó. Ban đầu chúng ta sẽ xuất phát từ 1 điểm, nếu điểm bên cạnh có màu tương đương. Tức là hiệu của màu nằm trong 1 ngưỡng nào đó giả sử là distance thì coi như chúng có màu tương đương. Với 2 màu tương đương ở cạnh nhau ta mở rộng vùng được chọn. Như vậy Load Selection sẽ từ 1 điểm lan ra các phía để tạo thành vùng selêction kết quả là 1 mảng int với tọa độ chính là tọa độ x,y của vùng trên ảnh.

Code
--------------------------------------

private static bool Inbound(int x, int y, int wid, int hei)
{
if (x < 0 || x >= wid) return false;
if (y < 0 || y >= hei) return false;
return true;
}

public static int[,] LoadSelection(Bitmap source, int start_x, int start_y)
{
Color c = source.GetPixel(start_x, start_y);
int wid = source.Width;
int hei = source.Height;

int[,] sel = new int[wid, hei];
for (int x = 0; x < wid; x++)
{
for (int y = 0; y < hei; y++)
sel[x, y] = 0;

}

for (int x = 0; x < wid; x++)
{
for (int y = 0; y < hei; y++)
sel[x, y] = 0;
}

sel[start_x, start_y] = 1;
Stack st = new Stack();
st.Push(new Point(start_x, start_y));


do
{
Point p = (Point)st.Pop();

Color c2 = source.GetPixel(p.X, p.Y);
if (System.Math.Abs(c2.R - c.R) < distance)
{
int x = p.X;
int y = p.Y;
sel[x, y] = 1;
if (Inbound(x - 1, y, wid, hei))
if(sel[x-1, y] == 0) st.Push(new Point(x - 1, y));
if (Inbound(x + 1, y, wid, hei))
if (sel[x + 1, y] == 0) st.Push(new Point(x + 1, y));
if (Inbound(x, y - 1, wid, hei))
if (sel[x, y - 1] == 0) st.Push(new Point(x, y - 1));
if (Inbound(x, y + 1, wid, hei))
if (sel[x, y + 1] == 0) st.Push(new Point(x, y + 1));
}
}
while (st.Count > 0);

return sel;
}
---
 
awas


49  bài
29-11-2008 09:38:26
Có vùng selection rồi fill một màu vào vùng đó

public static Bitmap FillSelection(Bitmap source, int[,] sel, int c)
{
for (int x = 0; x < source.Width; x++)
{
for (int y = 0; y < source.Height; y++)
{
if (sel[x, y] == 1)
source.SetPixel(x, y, Color.FromArgb(c, c, c));
}
}
return source;
}
---
 
lyngochung


17  bài
06-12-2008 02:16:22
Cám ơn bài viết của bác. Bác có thuật toán hay code về cắt ảnh ký tự trong một chuỗi ký tự ảnh không ạ. Em đang làm bài tập về nhận dạng ký tự viết tay.
---
 
quanlv


26  bài
07-09-2009 09:49:23
Các đoạn code rất hay ! Bạn có sản phẩm demo đưa lên cho anh em chiêm ngưỡng đi.
---
 
awas


49  bài
07-09-2009 05:30:38
Các đoạn code rất hay ! Bạn có sản phẩm demo đưa lên cho anh em chiêm ngưỡng đi.
---



http://tracnghiem.awas.vn/
http://tracnghiem.awas.vn/?step=1
http://tracnghiem.awas.vn/?step=2
http://tracnghiem.awas.vn/?step=3
http://tracnghiem.awas.vn/?step=4
http://tracnghiem.awas.vn/?step=5

Chấm điểm đề thi trắc nghiệm
---
 
aabbccdd


1  bài
22-03-2010 09:15:54
Cắt một phần ảnh từ vị trí x,y với độ rộng wid, hei. Hoặc cắt 1 đoạn ảnh được định nghĩa bởi rectangle.

public static Bitmap Select(Bitmap source, Rectangle rec)
{
Bitmap bmp = new Bitmap(rec.Width, rec.Height);
Graphics g = Graphics.FromImage(bmp);
g.DrawImage(source, 0, 0, rec, GraphicsUnit.Pixel);
g.Dispose();
return bmp;
}


Bạn có thể hướng hướng dẫn cách code để chụp ảnh 1 window có scrolbar không .Tks
 

Chủ đề gần đây :

Cùng loại :

 
Tên file Người đăng Ngày Lượt
News Ticker Demo.rar
jQuery Carousellite cho cuộn các khối tin nhẹ nhàng mượt mà, sử dụng cho module Tin tức (CMS) hoặc giới thiệu sản phẩm
aspnet 5/7/2011 8:59:52 AM 475
cms_source_dll_sql_2010.rar
source C# + SQL Script + Dll module CMS trên DNN 5x, (bản chạy ổn định không lỗi)
aspnet 9/5/2010 6:05:54 PM 1863
killforever.rar
Script diệt virus forever.exe (lây nhiễm qua USB) mà không cần cài lại window
aspnet 7/28/2010 6:51:30 AM 264
CSharp Coding Standards.pdf
C# Coding standard, for all user, quy tắc viết mã lập trình c# dotnet.
aspnet 6/1/2010 8:27:39 AM 1228
weather_forex_gold.rar
module DNN : "vàng + thời tiết + tỷ giá ngoại tệ" của seekill
coder 3/11/2010 3:50:09 AM 1089
Training DotNetNuke.zip
Tài liệu hướng dẫn cài đặt DNN, tạo module DNN đơn giản, nâng cao
quanlv 9/30/2009 9:11:36 AM 2912
Viet va them 1 module don gian vao website.doc
Hướng dẫn viết module đơn giản trên DNN (word) có hình, gửi bởi vinahana
aspnet 9/18/2009 6:15:24 PM 1461
Moduel NEWs Demo.zip
Một số module bao gồm: News, WorkScheduler, QA, Comment, Menu, ...
quanlv 8/22/2009 10:44:15 AM 2543
MenuDNN5.rar
Menu DNN 51 Page.aspx
aspnet 7/21/2009 12:22:38 PM 1805
diendan.zip
Cài đặt diễn đàn (VSP) chỉ với 4 bước.
aspnet 6/15/2009 2:18:13 AM 1300
roll_updown.zip
Roll up, roll down news list using javascript, simple, easy to use.
radiogaga 6/1/2009 11:29:51 AM 423
rotator-1.0.0.rar
Auto Scroll News - tự động cuộn tin tức bằng JS
dotnetvn 5/30/2009 3:21:22 PM 623
captcha2.rar
CAPTCHA sinh ngẫu nhiên : size, font, position, color ... vẽ line gây nhiễu chống reCAPTCHA bot.
tieuphu 5/30/2009 2:34:42 PM 609
MenuDNN.zip
Menu Dọc cho DNN (Tác giả Võ Thế Quang)
biennv 5/27/2009 8:07:47 AM 1407
Gioi_thieu_san_pham_unisched4.zip
Giới thiệu phần mềm xếp thời khóa biểu đại học (University Scheduling 4.0) : áp dụng cho mô hình xếp thời khóa biểu niên chế, tại các trường đại học và cao đẳng tại việt nam
khanhjin 5/12/2009 5:00:02 PM 2852
HitCounterInDatabaseASPNET.zip
HitCounter
nguyentx 4/20/2009 4:38:04 PM 561
s3Slide.rar
Slide show chuyên nghiệp, giống tintuconline.com.vn
coder 4/9/2009 9:34:41 AM 2233
XMLPROG.zip
XML Programing C# dotnet
aspnet 4/4/2009 10:02:43 AM 603
menu_vnexpress.rar
Tạo menu giống vnexpress = xsl transform, C# dotnet, javascript(Toàn bộ mã nguồn).
coder 3/30/2009 10:14:50 PM 2367
DesktopModules.rar
CMS dotnetnuke + Image Library + Core CMS (DNN Data Provider) version 1.1
aspnet 3/30/2009 5:23:14 PM 1941
CODERVN.NET
Công ty cổ phần công nghệ và dịch vụ AWAS
Công ty cổ phần công nghệ và dịch vụ AWAS, cổng thông tin, chính phủ điện tử, phần mềm quản lý điểm, quản lý sinh viên, http://awas.vn, http://awas.com.vn, phần mềm ứng dụng, dịch vụ công trực tuyến, thiết kế website, thiet ke web, thiết kế web, điện lực, phần mềm quản lý đào tạo, cao đẳng, đại học,cổng thông tin tích hợp, cổng thông tin điện tử, webportal, thư viện điện tử, electric library, library online, email, web, quản lý quan hệ khách hàng, CRM, dịch vụ công trực tuyến, phần mềm hành chính một cửa,