我的最新项目有问题,我是kinect的新手,我的编程技巧并不出色。 我需要我的程序检测我的棒(按颜色),所以我可以用它制作一个lasergun(红线从我的计算机上伸出来)。 这种颜色跟踪我遇到了很多麻烦。到目前为止,我有以下代码:
private void zoekGekleurdeStok(Image<Bgr, Byte> openCVImg)
{
pxLock img = new pxLock();
Bitmap b = BitmapFromWriteableBitmap(colorBitmap);
DataTable pxLocation = img.GetPixelLocation(b, c);
if (pxLocation.Rows.Count <= 0) { return; }
//Setup Rectangle
int boxWidth = 20;
int boxHeight = 20;
//Get Pixel Position
int iX = Convert.ToInt32(pxLocation.Rows[0]["Column"]);
int iY = Convert.ToInt32(pxLocation.Rows[0]["Row"]);
//Configure Rectangle
//System.Drawing.Rectangle rect = new Rectangle(iX, iY, boxWidth, boxHeight);
System.Drawing.Rectangle rect = new System.Drawing.Rectangle(iX, iY, boxWidth, boxHeight);
//Configure Pen Style
System.Drawing.Pen RedPen = new System.Drawing.Pen(System.Drawing.Color.Red, 2);
RedPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid;
//Draw Rectangle
//e.Graphics.DrawRectangle(RedPen, rect); / /e.Graphics.FillRectangle(Brushes.Red, rect);
System.Drawing.Point p3 = new System.Drawing.Point();
p3.X = iX;
p3.Y = iY;
System.Drawing.Point p4 = new System.Drawing.Point();
p4.X = iX + 30;
p4.Y = iY + 30;
LineSegment2D line = new LineSegment2D();
line.P1 = p3;
line.P2 = p4;
openCVImg.Draw(line, new Bgr(System.Drawing.Color.Red), 5);
}
但是我相信填写我的pxLocation需要很长时间,并且sub会被一次又一次地调用。 经过几天不生成任何好的代码,我想我应该换成不同的语言或程序?
也许这里的任何人都有这方面的经验。我只想用我的kinect制作一个简单的色彩跟踪程序。
我希望你们理解我的言论,我的英语不是很好。对不起,我很抱歉。
提前致谢。