读写数据到csv、txt文件
数据的保存工作在Halcon软件中时常用到,特别是测试大规模的图像数据时,需要统计每幅图像的特征值时,就需要实时的保存数据到文本文件、csv文件或者EXCEL文件等,Halcon提供了强大的数据读写功能。list_image_files('C:/Users/ysw/Desktop/视频讲解/图库','default', [], ImageFiles)
File_Name := 'ysw2.csv'
file_exists(File_Name,FileExits)
if(FileExits)
open_file(File_Name,'append',FileHandle)
else
open_file(File_Name,'output',FileHandle)
endif
for i :=0 to |ImageFiles|-1 by 1
read_image(Image, ImageFiles)
min_max_gray(Image, Image, 0, Min, Max, Range)
fwrite_string(FileHandle,ImageFiles+ ',' + 'MinGray=' + ',' + Min + ',' + 'MaxGray=' + ',' + Max + '\n')
* stop()
endfor
运行程序后,输出结果如下。 循环写入数据到csv文件
C:/Users/ysw/Desktop/视频讲解/图库/10.jpg MinGray= 0 MaxGray= 179
C:/Users/ysw/Desktop/视频讲解/图库/11.jpg MinGray= 222 MaxGray= 255
C:/Users/ysw/Desktop/视频讲解/图库/12.jpg MinGray= 0 MaxGray= 0
C:/Users/ysw/Desktop/视频讲解/图库/13.jpg MinGray= 52 MaxGray= 238
C:/Users/ysw/Desktop/视频讲解/图库/14.jpg MinGray= 123 MaxGray= 169
C:/Users/ysw/Desktop/视频讲解/图库/15.jpg MinGray= 0 MaxGray= 231
C:/Users/ysw/Desktop/视频讲解/图库/16.jpg MinGray= 0 MaxGray= 201
C:/Users/ysw/Desktop/视频讲解/图库/17.jpg MinGray= 0 MaxGray= 255
C:/Users/ysw/Desktop/视频讲解/图库/18.jpg MinGray= 245 MaxGray= 245
C:/Users/ysw/Desktop/视频讲解/图库/19.jpg MinGray= 0 MaxGray= 56
C:/Users/ysw/Desktop/视频讲解/图库/2.jpg MinGray= 181 MaxGray= 255
C:/Users/ysw/Desktop/视频讲解/图库/20.jpg MinGray= 0 MaxGray= 94
C:/Users/ysw/Desktop/视频讲解/图库/21.jpg MinGray= 0 MaxGray= 25
C:/Users/ysw/Desktop/视频讲解/图库/22.jpg MinGray= 0 MaxGray= 255
C:/Users/ysw/Desktop/视频讲解/图库/23.jpg MinGray= 0 MaxGray= 7
C:/Users/ysw/Desktop/视频讲解/图库/24.jpg MinGray= 0 MaxGray= 255
C:/Users/ysw/Desktop/视频讲解/图库/25.jpg MinGray= 0 MaxGray= 8
C:/Users/ysw/Desktop/视频讲解/图库/26.jpg MinGray= 0 MaxGray= 232
C:/Users/ysw/Desktop/视频讲解/图库/27.jpg MinGray= 42 MaxGray= 255
如果用户需要写入到txt文件中,则只需要将写入的文件名后缀改一下即可,例如:
list_image_files('C:/Users/ysw/Desktop/视频讲解/图库','default', [], ImageFiles)
File_Name := 'ysw2.txt'
file_exists(File_Name,FileExits)
if(FileExits)
open_file(File_Name,'append',FileHandle)
else
open_file(File_Name,'output',FileHandle)
endif
for i :=0 to |ImageFiles|-1 by 1
read_image(Image, ImageFiles)
min_max_gray(Image, Image, 0, Min, Max, Range)
fwrite_string(FileHandle,ImageFiles+ ',' + 'MinGray=' + ',' + Min + ',' + 'MaxGray=' + ',' + Max + '\n')
* stop()
endfor
dev_set_draw('margin')
dev_update_off()
path:='C:/DetecrionProjects'
list_image_files(path+'/Image', 'default', [], ImageFiles)
for i:= 0 to |ImageFiles|-1 by 1
imagepath := ImageFiles
tuple_split(imagepath,'/',Substrings)
imagename := Substrings[|Substrings|-1]
tuple_split(imagename, '.jpg', Substrings1)
imagenameN := Substrings1
read_image(Image, path+'/'+'Mask' + '/' + imagenameN+'.png')
threshold(Image, Region, 0, 128)
connection(Region, ConnectedRegions)
select_shape_std(ConnectedRegions, SelectedRegions, 'max_area', 70)
union1(SelectedRegions, RegionUnion)
smallest_rectangle1(RegionUnion, Row1, Column1, Row2, Column2)
Class :=0
File_Name := path+'/'+'Mask' + '/' +imagenameN + '.xml'
file_exists(File_Name,FileExits)
if(FileExits)
delete_file(File_Name)
open_file(File_Name,'append',FileHandle)
else
open_file(File_Name,'output',FileHandle)
endif
fwrite_string(FileHandle,imagepath+ ';' + Row1 + ',' + Column1 + ',' + Row2 + ',' + Column2+','+ Class + '\n')
close_file(FileHandle)
endfor
页:
[1]