Đăng nhập | Đăng ký

Danh sách thành viên | Cá nhân | Nhà đất, bất động sản

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


53  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


53  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


53  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


53  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


53  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


53  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
vspforum.zip
Ma nguon vspforum ngay xua
aspnet 4/18/2023 6:38:37 AM 8
pdfjs.rar
pdfjs 2017 : hiển thị tốt trên iphone 11, 12, 13 không lỗi, bản 2012 sẽ lỗi trên iphone
aspnet 6/21/2022 11:52:48 AM 2
pdfjs2.rar
Xem file pdf bằng viewer.hml cua pdfjs (thư viện chuẩn mozilla) 2012. https://mozilla.github.io/pdf.js/getting_started/#download có thể download bản prebuild tại đây
aspnet 6/21/2022 11:52:04 AM 2
runner.zip
using three.js, orbitcontrol to view an object move random on map. Di chuyển 1 đồ vật ngẫu nhiên trên bản đồ, sử dụng với demo nhân viên di chuyển trong văn phòng. Toàn js download về là chạy
aspnet 12/5/2019 5:55:14 PM 0
gmap.zip
google map + marker
aspnet 7/17/2019 2:25:05 PM 1
vinsmarthomeservice.zip
java post json to api, use AsyncTask, event listener
aspnet 7/9/2019 5:00:10 PM 1
fblogin.zip
Login facebook bang javascript SDK
aspnet 7/9/2019 9:16:37 AM 0
autocomplete-location.zip
autocomplete location geo from google place, html + js
aspnet 7/4/2019 4:37:55 PM 2
WebAPI.zip
api for android access db (v1.0.0)
aspnet 7/4/2019 9:14:17 AM 8
KydientuPdf.zip
Ky dien tu file PDF su dung itextsharp
aspnet 4/9/2019 3:30:37 PM 9
GooglePlusLogin.zip
Login Google Plus account, C#, web asp.net ver2.0. Simple connect google APIs. Send key, get token, get full account info
aspnet 6/1/2018 10:41:12 AM 11
WebApplication1.rar
Sample su dung thuat toan ma hoa tripDES, co khoa bi mat (privateKey)
aspnet 3/30/2018 10:06:35 PM 8
NETMdbToolsTestApp.rar
dotNet MdbTools for Access 2003/2007/2016 without Microsoft Jet Engine, source C#, https://www.codeproject.com/Articles/283626/MsAccess-MdbTools-with-MFC-and-NET
aspnet 3/26/2018 11:43:16 PM 1
Cryptography_MD5_TriDES_src.zip
Thuật toán mã hóa 2 chiều TriDES, gồm Encrypt và Decrypt, aspnet 2.0
aspnet 3/22/2018 11:20:44 AM 3
mvc.rar
sample project MVC on C#
aspnet 3/20/2018 9:25:36 AM 9
EduPortal.rar
Edu portal frame work for VB.NET
aspnet 3/14/2018 12:00:41 AM 13
AutoEntity.rar
Gencode vb.net visual studio 2015. dotnet v2.0
aspnet 3/13/2018 11:59:16 PM 2
GenCode.rar
Gencode XML, XSLT, Info, DAL .. engine enterprise for quick app database
aspnet 2/5/2018 9:37:28 AM 9
DataXml.rar
Read DB from SQL to XML file, Convert string TCVN to Unicode
aspnet 1/29/2018 2:15:45 PM 4
DesktopModules.rar
Module quản lý tin tức, CMS, quản lý nhóm tin trên dotnetnuke 6.x
aspnet 3/7/2013 4:47:49 PM 1715
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,