halcon error 3142:[Can not open file for writing in operator write_image.]问题解决方法

问题描述

🌀如果你在直接运行halcon或者其他语言编程接口的halcon的调用算子代码,碰到Halcon error: Can not open file for writing in operator write_image.,证明你是个大冤种了,碰到个头大的问题,开干🌈!


解决方法

问题类型:发生错误的通常是write_image算子,所以从算子的输入或输出参数寻找即可。

  • 1️⃣文件名编码问题,例如要指定文件名为某种编码后可能发生,因为如果是从程序外部文件中读取信息,有可能受到其中的文件名编码影响或者由于打开文件时,指定某种编码格式打开,这些情况最有可能发生,所以要注意包含文件目录的文件名的编码格式问题
  • 2️⃣文件太大问题:因为文件太大,write_image函数可能在该环境中无法写入,导致报错问题,在存图函数之前,线程休眠或延时一下,或者通过操纵IO的方式减少短时间内写入大文件内存
  • 3️⃣文件名太长。这种问题比较少发生(但被我碰到了),由于write_image上面的包含目录的文件名太长的话也会发生(路径项或文件名项的字符串太长了),解决方法是减少该文件名(或文件路径)的长度,就普适性来说,改文件名最好

最后,文中,若有不足,敬请批评指正!!!