是一个关于牌照识别器的动态链接库,请大侠给出基本的调用函数程序,我写的程序老是在调用过程出错然后就自动退出了,很无奈,我是一个初学者,请大侠指点,非常感谢!
里面的函数有:
除打开端口和关闭端口函数还有以下函数
1、检测车的存在状态函数:Int GetCarCondition()     返回1(有车通过)或0(无车通过)
2、请求识别结果函数:Int GetPlateNumber(char *PlateNumber)  入口参数:PlateNumber字符串指针
注:PlateNumber 至少申请30字节的空间。
返回牌照号:函数返回时,PlateNumber为识别的牌照号。
3、启动抓拍及请求牌照识别结果:Int GetCarPlate(char *PlateNumber)  入口参数:PlateNumber字符串指针。
注:PlateNumber 至少申请30字节的空间。
返回牌照号:函数返回时,PlateNumber为实际牌照号。
函数返回值及说明:
>0     牌照号的字节数(汉字为两个字节)
 =0      整牌拒识(无牌照或牌照无法识别)
 =-1     超时(通讯失败)
=-2      抓拍失败
=-3      参数错误
4、车牌二值化图数据文件的解压:Int UnpackPlate(char *PathFileName,unsigned char *ImageData) 入口参数:PathFileName为完整路径文件名
返回解压后数据:函数返回时,ImageData为解压后的图片数据(1byte/pixel的二值化图片)存放的指针,数据长度为112*20字节。注:ImageData至少申请112*20字节的空间。
基本步骤:
初始化端口后,按照下面执行:
1、线圈触发。
A、循环调用GetCarCondition()查询线圈状态,建议循环间隔时间可以设置为1s。如果线圈被触发,进入下一步;
B.调用GetPlateNumber(PlateNumber),PlateNumber即为牌照号。
2、软件触发。
A、调用GetCarPlate(PlateNumber),启动识别器抓拍图象并返回结果,PlateNumber即为牌照号。读取图片
l、车辆图片
车辆图片一般为JPEG格式的,文件名是show.jpg,直接读取并显示即可。如果需要保存,请转存到其他目录。
2、二值化牌照图片
牌照图片是一个压缩格式的二值化图片,尺寸是112×20pixel,文件名是plate.bin,文件大小为280字节(byte)。调用UnpackPlate可以返回解压后的图片数据。该图片是每个字节(1byte)表示一个象素(pixel)。在程序结束时调用CloseCommPort()关闭串口提示:
在处理牌照识别结果的时候,请务必按照以下顺序处理:
l读取牌照号
2读取车辆图片
3读取二值化牌照图片

解决方案 »

  1.   

    '标准模块中的代码
    Public PlateNumber As String * 30
    Public PathFileName As String
    Public ImageData(2239) As Byte
    Public RetVal As Long'Int GetCarCondition() 
    Public Declare Function GetCarCondition Lib "动态库文件名.dll" () As Long'Int GetPlateNumber(char *PlateNumber) 
    Public Declare Function GetPlateNumber Lib "动态库文件名.dll" (Byval PlateNumber As String) As Long'Int GetCarPlate(char *PlateNumber) 
    Public Declare Function GetCarPlate Lib "动态库文件名.dll" (Byval PlateNumber As String) As Long'Int UnpackPlate(char *PathFileName,unsigned char *ImageData)
    Public Declare Function UnpackPlate Lib "动态库文件名.dll" (Byval PathFileName As String, Byref ImageData As Byte) As Long
    '调用时
    'PathFileName = App.Path & "\plate.bin"
    'UnpackPlate
    'RetVal = UnpackPlate(PathFileName, ImageData(0))'
      

  2.   

    还请问of123:
    Public PlateNumber As String * 30 
    Public PathFileName As String 
    Public ImageData(2239) As Byte 
    Public RetVal As Long 必须放在标准模块中吗?放在窗体模块中为什么不行啊
      

  3.   

    我如果想直接在窗体上显示车辆图片的话如下语句写可以吗?
    e:\data\event是图片的保存路径
    picture1.picture=loadpicture("e:\data\event\show.jpg")