这里写目录标题
- (一)原始图像
- (二)最邻近插值实现
- (三)python实现
- 1. 安装库
- 2. python程序编写
- 3. 效果
- 4. 工程文件
(一)原始图像
(二)最邻近插值实现
一般情况下我们对图像缩放的时候会进行上采样或下采样,上采样常采用插值来实现,本文章使用最邻近插值来实现图像放大
(三)python实现
python安装可以参考:python安装
1. 安装库
首先我们需要安装用到的库,按住win+r输入cmd打开dos窗口,输入下面的命令
pip install opencv-python
pip install numpy
2. python程序编写
import cv2 # cv2 即opencv的库
import numpy as np #给numpy起别名np,该库Numerical Python是python的数学函数库def function(img):height, width,channels = img.shape #将图像的长宽通道信息赋值给对应变量print("heigh=%s width=%s chanel=%s"%(height,width,channels))emptyImage=np.zeros((800,800,channels),np.uint8)print(emptyImage)sh = 800/heightsw = 800/widthfor i in range(800):for j in range(800):x=int(i/sh) #找出目标图像对应原图像最近的点y=int(j/sw)emptyImage[i,j] = img[x,y]return emptyImageimg=cv2.imread("lenna.png") #从当前目录加载图像
zoom=function(img)
print(zoom) #打印图像矩阵信息
print("---------------------------")
print(zoom.shape) #打印图像信息
print("---------------------------")
cv2.imshow("nearst",zoom) #显示放大后的图像
cv2.imshow("image",img) #显示原图像
cv2.waitKey(0) #等待输入
3. 效果
打印信息:
========== RESTART: E:\ProgramDemo\AI\opencv\nearest_interpolation.py ==========
heigh=512 width=512 chanel=3
[[[0 0 0][0 0 0][0 0 0]...[0 0 0][0 0 0][0 0 0]][[0 0 0][0 0 0][0 0 0]...[0 0 0][0 0 0][0 0 0]][[0 0 0][0 0 0][0 0 0]...[0 0 0][0 0 0][0 0 0]]...[[0 0 0][0 0 0][0 0 0]...[0 0 0][0 0 0][0 0 0]][[0 0 0][0 0 0][0 0 0]...[0 0 0][0 0 0][0 0 0]][[0 0 0][0 0 0][0 0 0]...[0 0 0][0 0 0][0 0 0]]]
[[[125 137 226][125 137 226][125 137 226]...[110 130 221][110 130 221][ 90 99 200]][[125 137 226][125 137 226][125 137 226]...[110 130 221][110 130 221][ 90 99 200]][[125 137 226][125 137 226][125 137 226]...[110 130 221][110 130 221][ 90 99 200]]...[[ 57 22 82][ 57 22 82][ 57 22 82]...[ 81 71 181][ 81 71 181][ 81 74 185]][[ 57 22 82][ 57 22 82][ 57 22 82]...[ 81 71 181][ 81 71 181][ 81 74 185]][[ 57 22 82][ 57 22 82][ 57 22 82]...[ 81 71 181][ 81 71 181][ 81 74 185]]]
---------------------------
(800, 800, 3)
---------------------------
4. 工程文件
线性插值函数