cv2.imwrite("D:/WangLinLi/mask_rcnn/data/coco/coco/images/train2017/{}".format(filenames), temp_img) cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgcodecs\src\loadsave.cpp:783: error: (-215:Assertion failed) !_img.empty() in function 'cv::imwrite'
时间: 2023-11-03 16:46:03 浏览: 146
这个错误通常发生在使用 OpenCV 的 imwrite时,原因是传递给函数的图像为空。这可能是由于文件路径不正确或图像加载失败引起的。
请确保以下几点:
1. 检查文件路径是否正确。确认路径中的文件夹和文件名都是正确的,并且存在于指定的位置。
2. 检查图像是否成功加载。您可以使用 cv2.imread 函数加载图像,并打印返回值来检查图像是否为空。例如:
```python
img = cv2.imread("D:/WangLinLi/mask_rcnn/data/coco/coco/images/train2017/{}".format(filenames))
if img is None:
print("Failed to load image")
```
3. 确保您有适当的读取权限。检查您的代码是否有足够的权限读取指定位置的文件。
如果问题仍然存在,请提供更多的代码和详细信息,以便我能够更好地帮助您解决问题。
相关问题
floder_path = 'F:/mask_4/img/OD' save_r_floder = 'F:/mask_4/img/predic' for img_name in os.listdir(floder_path): img_path = floder_path +'/'+ img_name image = cv2.imread(img_path) img = image.copy() img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) img = Image.fromarray(np.uint8(img)) r_img = np.array(mask_rcnn.detect_image(img)) r_img = cv2.cvtColor(r_img,cv2.COLOR_RGB2BGR) save_path = save_r_floder +'/'+img_name.split('.')[0]+'_new.jpg' cv2.imwrite(save_path,r_img)无法写入图片
如果你的代码无法写入图片,可能有以下几种原因:
1. 检查文件夹路径是否正确。请确保`floder_path`和`save_r_floder`都是存在的文件夹路径,并且文件夹中有图片文件。
2. 检查是否安装了必要的Python库。请确保你已经安装了使用到的库,例如OpenCV和Pillow。
3. 检查代码中是否有错误。请逐行检查代码,确认代码是否有语法错误或者逻辑错误。
如果以上方法都无法解决问题,请提供更多细节信息,例如代码运行时的错误提示等,以便我更好地理解问题所在。
cv2.imwrite("/home/rvbust/.rvbust/mask.bmp", (mask * (255 / np.max(mask))).astype(np.uint8)) cv2.imwrite("/home/rvbust/.rvbust/img.bmp", (img * (255 / np.max(img))).astype(np.uint8))
这段代码使用OpenCV库将一个经过处理的mask和img保存为bmp格式的图片文件,其中mask和img都是numpy数组。具体来说,使用np.max()函数找到数组中的最大值,然后将数组元素除以最大值并乘以255,再将结果转换为无符号8位整数类型,最后使用cv2.imwrite()函数将处理后的结果保存为bmp图片文件。其中,第一个参数是保存路径,第二个参数是待保存的图片数据。
阅读全文