图片归一化代码python
时间: 2023-05-08 14:00:50 浏览: 58
图片归一化是一种处理图像的方法,它将原始图像的像素值缩放到0和1之间,以避免像素值过大或者过小导致数据异常的情况。以下是Python代码实现图像归一化:
```python
import cv2
import numpy as np
def normalize(image):
# 将图像像素值归一化到0和1之间
image -= np.min(image)
image /= np.max(image)
return image
# 读取图像数据
img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
# 图像归一化
norm_img = normalize(img)
```
代码中首先用OpenCV库读取图片,并将其转为灰度图,然后定义了一个`normalize`函数,该函数将图像像素值减去最小值,然后再除以最大值,从而将像素缩放到0和1之间。最后,对读取的图像数据调用`normalize`函数,得到了归一化后的图像数据`norm_img`。这样做可以避免像素值过大或者过小,使得处理结果更加准确可靠。
相关问题
python图片大小归一化
以下是使用Python进行图片大小归一化的示例代码:
```python
from PIL import Image
def resize_image(input_image_path, output_image_path, size):
original_image = Image.open(input_image_path)
width, height = original_image.size
print(f"The original image size is {width} wide x {height} high")
resized_image = original_image.resize(size)
width, height = resized_image.size
print(f"The resized image size is {width} wide x {height} high")
resized_image.show()
resized_image.save(output_image_path)
if __name__ == '__main__':
resize_image('input_image.jpg', 'output_image.jpg', (800, 800))
```
在上述代码中,我们使用了Python的Pillow库来处理图片。`resize_image`函数接受三个参数:输入图片路径、输出图片路径和目标大小。函数首先打开输入图片,获取其原始大小,然后将其缩放到目标大小,并保存为输出图片。最后,函数会显示缩放后的图片。
画图片归一化直方图的代码
根据提供的引用,以下是画图片归一化直方图的Python代码:
```python
import cv2
import numpy as np
from matplotlib import pyplot as plt
# 读取灰度图像
img = cv2.imread('image.jpg', 0)
# 计算直方图
hist, bins = np.histogram(img.flatten(), 256, [0, 256])
# 计算累积分布函数
cdf = hist.cumsum()
cdf_normalized = cdf * hist.max() / cdf.max()
# 画直方图
plt.plot(cdf_normalized, color='b')
plt.hist(img.flatten(), 256, [0, 256], color='r')
plt.xlim([0, 256])
plt.legend(('cdf', 'histogram'), loc='upper left')
plt.show()
```
其中,`cv2.imread('image.jpg', 0)`用于读取灰度图像,`np.histogram()`用于计算直方图,`hist.cumsum()`用于计算累积分布函数,`plt.plot()`和`plt.hist()`用于画直方图。