【故障诊断】cv2.imwrite无法写入图片,但程序就是不报错

【故障诊断】cv2.imwrite无法写入图片,但程序就是不报错

故障现象

在这种故障里,我们发现,使用cv2.imwrite的时候,明明程序不报错,可是在指定的路径下就是找不到生成的图片。

原因解释

这种情况一般是路径不对,因为cv2的这个方法从一开始就没有创建路径的功能。所以即使路径是错的,他也不会管,而是照常执行。

解决方案

创建目录

利用os.path.exists方法加入一个逻辑,如果这个路径不存在,那么就创建这个目录。具体做法可以直接百度,难度不是很大。

检查混用

 cv2.imwrite(save_dir_file + '/' + str(f'{
      
      patient_id}_{
      
      stain_type}_{
      
      cord[0] // downsample_factor}_{
      
      cord[1] // downsample_factor}.png'),cv2.cvtColor(img, cv2.COLOR_RGB2BGR))

注意这一行代码是可以执行的,因为save_dir_file是一个字符串数据类型,所以后面是使用加号相连。但是,如果这是一个Path类实例化后的对象,就必须使用反斜杠/直接相连,而不是采用字符串拼接的方式,最后再把Path对象转化为str类型。这一点一定要注意!

还有,在f‘’的两个引号之间的部分是字符串,这其中{}里如果要用的除号,要用双反斜杠。

猜你喜欢

转载自blog.csdn.net/Michael_Cretu_/article/details/125311417