+ -
当前位置:首页 → 问答吧 → 读取街道车子的数量

读取街道车子的数量

时间:2011-07-10

来源:互联网

各位你们好~
小弟在这有一个问题想请教,请问我想要计算出高速公路上某张图片上的车辆,用C#跟影像处理的技术,请问我可以怎么做,程式码又该怎么写,我真的思考了好久><,在此请教各位程式高手,帮帮小弟我
万分感激!!

作者: mazdalexus   发布时间: 2011-07-10

//加边框
        public void doBorder(int[, ,] rgbData)
        {
            // Step 1: 建立 Bitmap 元件
            Bitmap bimage = new Bitmap(image);
            int Height = bimage.Height;
            int Width = bimage.Width;
            // Step 2: 设定像点资料
            for (int x = 0; x < Width; x++)
            {
                for (int y = 0; y < Height; y++)
                {
                    int gray = (rgbData[x, y, 0] + rgbData[x, y, 1] + rgbData[x, y, 2]) / 3;

                    //判断是否超出边界
                    if (x != 0 && y != 0 && x != Width - 1 && y != Height - 1)
                    {
                        //判断灰阶>0 & 灰阶>0的点附近有无黑色
                        if (gray > 0 & ( (rgbData[x, y, 0] == 0 &&
                                          rgbData[x, y, 1] == 0 &&
                                          rgbData[x, y, 2] == 0  ) ||
                                         (rgbData[x-1, y, 0] == 0 &&
                                          rgbData[x-1, y, 1] == 0 &&
                                          rgbData[x-1, y, 2] == 0  ) ||
                                         (rgbData[x-1, y-1, 0] == 0 &&
                                          rgbData[x-1, y-1, 1] == 0 &&
                                          rgbData[x-1, y-1, 2] == 0 ) ||
                                         (rgbData[x, y-1, 0] == 0 &&
                                          rgbData[x, y-1, 1] == 0 &&
                                          rgbData[x, y-1, 2] == 0  ) ||
                                         (rgbData[x+1, y, 0] == 0 &&
                                          rgbData[x+1, y, 1] == 0 &&
                                          rgbData[x+1, y, 2] == 0  ) ||
                                         (rgbData[x+1, y+1, 0] == 0 &&
                                          rgbData[x+1, y+1, 1] == 0 &&
                                          rgbData[x+1, y+1, 2] == 0  ) ||
                                         (rgbData[x, y+1, 0] == 0 &&
                                          rgbData[x, y+1, 1] == 0 &&
                                          rgbData[x, y+1, 2] == 0 )  ))
                        {
                            //在这改边框颜色
                            rgbData[x, y, 0] = 255;
                            rgbData[x, y, 1] = 0;
                            rgbData[x, y, 2] = 0;

                           
                        }
                    }
                    
                }
            }


            for (int x = 0; x < Width; x++)
            {
                for (int y = 0; y < Height; y++)
                {
                    bimage.SetPixel(x, y, Color.FromArgb(rgbData[x, y, 0], rgbData[x, y, 1], rgbData[x, y, 2]));
                }
            }
            // Step 3: 更新显示影像
            image = bimage;
            this.Refresh();
        }
这是可以框出一车子的程式,我想框出第二第三台就会出问题,请各位帮我看看,感谢~

作者: mazdalexus   发布时间: 2011-07-12

热门下载

更多