石鑫华视觉 发表于 2018-12-31 17:27:49

LabVIEW中使用LabSQ向ACCESS数据库中插入图片

LabVIEW中使用LabSQ向ACCESS数据库中插入图片
做机器视觉与图像处理,经常会遇到图像、图片的情况。同时也经常会遇到使用数据库的情况。当这两种情况都出现时,就会有客户要求,将图像也写入到数据库中。那么我们如何来实现这个过程呢?这里可以考虑两种方法。
方法1、将图片保存为到本地或网络服务器中,获取该图片的路径,将路径保存到数据库中。这种方法是多数编程工程师推荐的方法。因为这样,数据库可以做的很小。而且路径也有一定的通用性。在Access/MYSQL/MS SQL等多个环境中,都可以正常使用(本质是上写入字符串)。但是这种方式的话,比较依赖于图片的路径,如果图片文件路径有改变,那么则原始保存的路径将无效而找不到图像。如果是批量修改了图片服务器、或文件夹,那么倒是可以使用Updata语句直接修改数据库中的路径即可。但是如果是文件夹中的某些图片路径变了,或者是名称修改了。那么就只能逐个的修改,比较麻烦。
方法2、将图片转换为其它的数据方式,存入到数据库中。在MS SQL等大型数据库中,可以将图像转换为二进制方式写入。在Access中,不支持二进制方式,只能考虑使用字符串方式。本例子,则是介绍的是在Access中写入字符串图片的方式。http://visionbbs.com/data/uploads/allimg/180409/2-1P4091P918.jpg
ACEESS数据库中写入图片并读取图片
http://visionbbs.com/data/uploads/allimg/180409/2-1P4091P918-50.jpg
Access数据库中的图像信息
本例子是将图像转换为二维数组(需要VDM),再使用数组至电子表格字符串函数将其转换为字符串,然后写入到数据库中。读取则使用了写入的逆过程,先读取电子表格字符串,然后使用电子表格字符串至数组函数,将其转换为二维数组,之后再使用二维数组到图像函数(需要VDM)。当然,因为保存的是字符串,这里可以有多个方式来实现,转换为二维数组只是其中的一种。另外还可以使用平化字符串等方式。本例子使用的是第三方的免费SQL工具包LabSQL,并没有使用NI官方的Database Toolkit工具包。
不过需要注意的是,本人验证,这里只能写入非常小的图像,稍微大一点的数据,因为转换为字符串后很长的串了,则无法写入,如640*480的8位灰度图像,都无法正常写入。
所以写入图像内容到数据库中,个人是不建议这种方式的。当然,各位也可以再尝试其它方法,看能不能写入大文件。

附件例子下载:


页: [1]
查看完整版本: LabVIEW中使用LabSQ向ACCESS数据库中插入图片

LabVIEW HALCON图像处理入门教程(第二版)
石鑫华机器视觉与LabVIEW Vision图像处理PDF+视频教程11种全套
《LabVIEW Vision函数实例详解》教程-NI Vision所有函数使用方法介绍,基于NI VISION2020,兼容VDM21/22/23