用Python读入一幅灰度图像,并利用最邻近插值法对图像进行放大2倍的操作,附上源代码
时间: 2024-05-10 07:20:24 浏览: 98
以下是利用Python进行最邻近插值法对灰度图像进行放大2倍的代码:
```python
import cv2
# 读入灰度图像
img = cv2.imread('image_gray.jpg', cv2.IMREAD_GRAYSCALE)
# 获取图像的行数和列数
rows, cols = img.shape[:2]
# 放大2倍后的行数和列数
new_rows = rows * 2
new_cols = cols * 2
# 创建一个新的图像矩阵
new_img = [[0] * new_cols for i in range(new_rows)]
# 对新图像中的每个像素点进行赋值
for i in range(new_rows):
for j in range(new_cols):
# 找到原图像中对应的像素点
x = int(i / 2)
y = int(j / 2)
# 最邻近插值法
new_img[i][j] = img[x][y]
# 将新图像矩阵转换为NumPy数组
new_img = np.array(new_img, dtype=np.uint8)
# 显示原图像和放大后的图像
cv2.imshow('Original', img)
cv2.imshow('Nearest Neighbour Interpolation', new_img)
cv2.waitKey(0)
```
需要注意的是,这里使用的是最邻近插值法,即对于新图像中的每个像素点,找到原图像中最近的像素点,并将它的灰度值赋值给新像素点。这种方法实现简单,但可能会导致图像出现锯齿状的痕迹。如果需要更高质量的放大效果,可以考虑使用其他插值方法,如双线性插值、双三次插值等。
阅读全文