在计算机视觉期末项目的Part21中,学生需要进行一项针对100张图像的批量处理任务。这个部分主要分为两个步骤:图片预处理和图像识别与切割。
首先,学生利用C++的`opendir`和`readdir`函数对存放100张图片的文件夹(`./testSet/bmp`)进行遍历。在遍历过程中,他们创建了子文件夹来存储切割后的数字图片,并记录每张图片的名称及其关键点信息(如角点)到一个名为`txt`的文本文件中。这样做是为了便于后续在Python中读取并可能整合到Excel中。文本文件的路径设置为`./testSet/imagetxt/`,并将图片名通过字符串操作简化,例如将`.jpg`后缀替换为`.txt`。
其次,这部分涉及使用Python和TensorFlow对每个子文件夹中的图片进行进一步处理。在这个阶段,需要注意的是TensorFlow的一个常见问题,即在一个进程中多次导入同一模型的检查点(`ckpt`)可能导致错误。因此,为了确保代码的正确性,学生在每次调用处理函数前清空了与图像相关的全局变量或图(graph)内的所有信息,避免内存冲突。
具体的操作是,使用`CImg`库加载图片,然后应用图像分割(`ImageSegmentation`)技术对图片进行处理。处理后的结果被保存到指定的输出路径`./testSet/imageoutput/`,并以原始图片名的某种形式命名,例如`image15331178.jpg`会被保存为`image15331178.jpg`。同时,将处理过程的输出信息(如可能的角点信息)写入对应文本文件,以便后续分析。
在主程序部分,学生还提到了一个待办事项,即执行某个特定的命令行操作,这可能是对`imageoutput`文件夹下某张图片(如`image15331178`)的输出文件(`.t`文件)进行进一步处理或查看。
这个项目涉及到了计算机视觉中的基础图像处理技术,包括文件系统操作、图像加载、预处理以及使用Python进行批量处理。同时,也展示了在实际项目中如何处理TensorFlow中的潜在问题,以确保代码的稳定性和性能。