|
|
คือ ผมทำเกี่ยวกับการประมวลผลภาพที่เปลี่ยนแปลง แล้วมันมีปัญหาตรงที่ ภาพที่นำมาประมวลผลมันจะจับการเปลี่ยนแปลงได้เฉพาะที่ มุมขวาล่างของภาพ ผมจึงอยากทราบว่าเราจะตั้งค่าการแสดงภาพในหน้าจอโปรแกรมให้มันแสดงเฉพาะมุมขวาล่างยังไงครับ
ถ้าเป็นไปได้ก็อยากให้โปรแกรมมันจับการเปลี่ยนแปลงของภาพได้เต็มภาพเลยครับ แต่ไม่รู้จะเขียน code ยังไง ช่วยบอกหน่อยครับ ขอบคุณมากครับ
ปล. ใช้ vs c# 2008 , ref videocapx.dll , ช่วยอธิบายโค้ดหน่อยก็ดีครับ เพือผมเข้าใจอะไรผิดไป
Code (C#)
private void timer2_Tick(object sender, EventArgs e)
{
if(checkBox4.Checked){
int w, h, x2, y2;
String ds;
w = vcx.VideoWidth;
h = vcx.VideoHeight;
Bitmap bb=new Bitmap(w, h, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
Graphics g = Graphics.FromImage(bb);
g.FillRectangle(Brushes.White, 0, 0, w, h);
//ds = vcx.DetectMotionRects(16);
ds = vcx.DetectMotionRects(2);
if (ds != null)
{
Array d;
d = ds.Split(',');
if (d.GetLength(0) > 1)
{
int f = 1;
if (Convert.ToInt32(d.GetValue(f)) > 5) //ถ้ามีค่ามากกว่า 15 จะสร้างกรอบแดง
{
vcx.CapFilename = textBox1.Text;
vcx.StartCapture();
x2 = (w);
y2 = (h);
g.DrawRectangle(Pens.Red, 0, 0, x2 - 2, y2 - 1);
}
else
vcx.StopCapture();
}
}
g.Dispose();
DeleteObject(oldbh);
IntPtr bh= bb.GetHbitmap();
vcx.SetBitmapOverlay((int)bh, 0, 0, 0xFFFFFF, 255);
oldbh = bh;
}
}
Tag : .NET, Win (Windows App), C#, VS 2008 (.NET 3.x)
|
|
|
|
|
|
Date :
2011-03-07 22:41:16 |
By :
sprite-111 |
View :
2271 |
Reply :
1 |
|
|
|
|
|
|
|
|
|