BUG:cv2.error: OpenCV(4.5.2) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-vi271kac\opencv\modules\imgcodecs\src\loadsave.cpp:650: error: (-2:Unspecified error) could not find a writer for the specified extension in function ‘cv::imwrite_’ cv2.imwrite()函数的路径问题
提示:cv2.imwrite()函数的路径问题
cv2.imwrite()函数的图片保存时的路径问题
当cv2.imwrite函数用于循环中,每次循环之后都要保存一个新的图片文件,cv2.imwrite()中的第一个参数保存路径也是要变化的。而不是将第一个参数单纯设置为一个固定的文件路径名称。
for row_start in range(0, (rows-row_size), step):
for col_start in range(0, (cols-col_size), step):
cropped = img_mat[row_start:(row_start + row_size), col_start:(col_start + col_size)] # 裁剪坐标为[y0:y1, x0:x1]
save_name = os.path.basename(a) + b.split('.')[0] + '_' + str(row_start) + ' _ ' + str(col_start) + '.png' # 随机生成一个数字作为名字 # TODO
cv2.imwrite(output_path, cropped) # 保存到新的文件夹
print('saved +> ', save_name)
if __name__ == '__main__':
# 本方法用于一张素材图生成无数张效果图
print('执行开始')
source_path = 'D:/ImageSet/BDRRN_imageSet/decoded_frames' # 原图路径
output_path = './crop_out' # 保存路径
解决方案:
for row_start in range(0, (rows-row_size), step):
for col_start in range(0, (cols-col_size), step):
cropped = img_mat[row_start:(row_start + row_size), col_start:(col_start + col_size)] # 裁剪坐标为[y0:y1, x0:x1]
save_name = os.path.basename(a) + b.split('.')[0] + '_' + str(row_start) + ' _ ' + str(col_start) + '.png' # 随机生成一个数字作为名字 # TODO
cv2.imwrite(output_path + '/' + save_name, cropped) # 保存到新的文件夹
print('saved +> ', save_name)
cv2.imwrite()函数中路径一一对应,是个变量