注册 登录
编程论坛 VB6论坛

在VB中如何实现,识别某一条线上某一点的颜色和其它点的颜色不一样,然后把这个不一样的颜色点的坐标记下来???

QYCqyc 发布于 2012-11-03 09:17, 2451 次点击
实现上述功能!
15 回复
#2
Artless2012-11-03 11:07
什么地方有问题?
#3
yz10252012-11-03 16:12
识别某一条线上

哪里的一条线上?
我这倒是有抓了不少图形识别的原码...
#4
风吹过b2012-11-03 20:15
图形识别原码?
不过,这块,很复杂,针对不同的识别码,需要使用不同的方法。
------------
竟然你有这个原码,还找不到这些点:
首先,你这条线的方程有吧?
然后计算出这条线上所有点的坐标。
再取点的颜色,计算成三原色,然后 比较三原色,差的绝对值在 指定范围之内,就当成一个颜色。找出不同颜色的点来就是了。

如果你没有线的方程,那就 搜索所有的点,

或者保存到 BMP 文件,然后使用二进制比较的方式进行比较。
保存为BMP后,三原色是直接可以读取,并且按线性存放的。
#5
yz10252012-11-04 00:16
我想识别电脑旁一张海报里的一条线?
Scanner...
#6
青春无限2012-11-04 08:35
看看
#7
风吹过b2012-11-04 10:52
找海报中的一根线,那就整个图形都扫描吧。

VB 对取点颜色的操作很慢,建议你保存为BMP文件,然后再读文件的方式来扫描。
#8
QYCqyc2012-11-04 16:53
回复 7楼 风吹过b
版主你好,请问如果我运行编制好的程序之后,在一个图片框(400x400)里面通过鼠标画了一条曲线,那么我能不能把这条曲线上点的颜色识别出来,画线部分点的颜色我记做1,没经过的地方记做0,大概有500到1000个点组成的线,请问用什么命令代码呢???可以实现吗?或者是有什么好的方法实现这个功能呢?谢谢您
#9
QYCqyc2012-11-04 17:00
回复 4楼 风吹过b
版主,我没有线的方程,这条线是运行程序之后,自己画的,画线用的颜色就是自己定的颜色比如说纯黑色或者是红色;我就是想通过在这个picturebox里面搜索到这条线上点的颜色和其它地方不一样的这种功能,并且把曲线经过的地方的点记做1,没有经过的地方记做0,这样就可以得到一个矩阵,大概是400x400的矩阵,这个矩阵只有0和1组成,我该怎么办呢?????谢谢您
#10
QYCqyc2012-11-04 17:03
回复 2楼 Artless
版主,我是这样操作的,运行编制好的代码之后,在picturebox里面自己画条曲线,画线用的颜色就是自己定的颜色比如说纯黑色或者是红色有别于背景色;我就是想通过在这个picturebox里面搜索到这条线上点的颜色和其它地方不一样的这种功能,并且把曲线经过的地方的点记做1,没有经过的地方记做0,这样就可以得到一个矩阵,大概是400x400的矩阵,这个矩阵只有0和1组成,我该怎么办呢?????谢谢您
#11
风吹过b2012-11-04 18:40
for i=1 to 图像宽
  for j=1 to 图像高
      m=取点颜色      'VB里提供了命令,你查一下
      if m=所指定的颜色
           矩阵(i,j)=1
      else
           矩阵(i,j)=0
      end if
  next j
next i

方法就是这样的,当你的图片越大时,此程序的执行效率越低。
先实现,然后再想办法优化吧。

如,从中心从下到下取一根线,查找是否包含指定点,找到后,以此点为中心,8个方向进行查找,找到边际为止。
每个点只8个方向只有二个相邻的点。这个你自己想吧。
#12
QYCqyc2012-11-05 10:02
回复 11楼 风吹过b
先谢谢,我试试哈……
#13
Artless2012-11-05 12:49
以下是引用QYCqyc在2012-11-4 17:03:53的发言:

版主,我是这样操作的,运行编制好的代码之后,在picturebox里面自己画条曲线,画线用的颜色就是自己定的颜色比如说纯黑色或者是红色有别于背景色;我就是想通过在这个picturebox里面搜索到这条线上点的颜色和其它地方不一样的这种功能,并且把曲线经过的地方的点记做1,没有经过的地方记做0,这样就可以得到一个矩阵,大概是400x400的矩阵,这个矩阵只有0和1组成,我该怎么办呢?????谢谢您

直接取每个点,
判断 是背景色=0 否=1
#14
QYCqyc2012-11-05 13:51
回复 13楼 Artless
版主,vb6.0中有您说的这个功能吗?这个直接找像素点坐标这个功能是不是在 .net 版本里呢?????vb6.0不识别getpixel这个功能吧??
#15
QYCqyc2012-11-05 16:29
回复 13楼 Artless
怎么取每个点啊???这个功能要在中实现吗???在普通的VB6.0中可以实现吗,应该不可以吧……是不是通过这个getpixel这个命令呢?还有在图片框中找线的颜色和在图片框中找 带颜色点的颜色是不是一回事呢?????谢谢你,我太笨了
#16
QYCqyc2012-11-06 16:23
回复 7楼 风吹过b
你好,版主,我还要麻烦你一下,我是在VS2008,.net中操作的!运行好操作的代码之后,在picturebox中画了曲线,然后我想对现在得到的曲线进行操作,实现曲线上像素点颜色的位置坐标(就是曲线上点的颜色不同于其他地方的颜色的点的坐标,比如说和背景色进行区分),请问可以实现吗?
1