Halcom 发表于 2016-12-5 22:43:30

读写数据到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


Halcom 发表于 2023-6-20 21:56:05

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]
查看完整版本: 读写数据到csv、txt文件