使用如下python代码:import cv2 import numpy as np import matplotlib.pyplot as plt def fix_threshold(img, thresh, maxval=255): return np.where(((img > thresh) & (img < maxval)), 255, 0) img = cv2.imread("C:\\Users\\YOLO\\UNET\\UNETtrain\\image\\1.png") img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) img_gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) ret, th = cv2.threshold(img_gray, 80, 255, cv2.THRESH_BINARY) fix = fix_threshold(img_gray, 127, 255) # plt.subplot(131), plt.imshow(img_gray, cmap='gray') # plt.title('Original Image'), plt.xticks([]), plt.yticks([]) plt.subplot(), plt.imshow(th, cmap='gray') plt.xticks([]), plt.yticks([]) plt.savefig("C:\\Users\\YOLO\\UNET\\UNETtrain\\label\\L1.png",bbox_inches='tight',pad_inches = -0.1),为什么保存下来的图片跟原图尺寸不一样
时间: 2023-10-09 11:15:08 浏览: 162
这可能是由于保存图像时使用的 `bbox_inches='tight'` 参数导致的。该参数会自动调整图像的边界框以适应内容,但有时会导致图像尺寸发生变化。
你可以尝试将 `bbox_inches='tight'` 参数移除,或者将其替换为 `bbox_inches=None`,这样可以保持保存的图像尺寸与原图一致。修改后的代码如下:
```python
import cv2
import numpy as np
import matplotlib.pyplot as plt
def fix_threshold(img, thresh, maxval=255):
return np.where(((img > thresh) & (img < maxval)), 255, 0)
img = cv2.imread("C:\\Users\\YOLO\\UNET\\UNETtrain\\image\\1.png")
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img_gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
ret, th = cv2.threshold(img_gray, 80, 255, cv2.THRESH_BINARY)
fix = fix_threshold(img_gray, 127, 255)
plt.subplot(), plt.imshow(th, cmap='gray')
plt.xticks([]), plt.yticks([])
plt.savefig("C:\\Users\\YOLO\\UNET\\UNETtrain\\label\\L1.png")
```
这样修改后保存的图像应该与原图尺寸一致。
阅读全文