读取街道车子的数量
时间:2011-07-10
来源:互联网
各位你们好~
小弟在这有一个问题想请教,请问我想要计算出高速公路上某张图片上的车辆,用C#跟影像处理的技术,请问我可以怎么做,程式码又该怎么写,我真的思考了好久><,在此请教各位程式高手,帮帮小弟我
万分感激!!
小弟在这有一个问题想请教,请问我想要计算出高速公路上某张图片上的车辆,用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();
}
这是可以框出一车子的程式,我想框出第二第三台就会出问题,请各位帮我看看,感谢~
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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28