同时搞三门课有点吃不消
CV基础主要依靠opencv实现
出于对C++的恐惧,之前基本没用过。。
这门课程也只是看了python版本的
1.插值算法
包括最近邻插值算法与双线性插值算法,原理上与缺失值补全类似,就不赘述了。
cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])
src 【必需】原图像
dsize 【必需】输出图像所需大小 (长 , 宽) (shape[1], shape[0])
fx 【可选】沿水平轴的比例因子
fy 【可选】沿垂直轴的比例因子
interpolation 【可选】插值方式
cv.INTER_NEAREST 最近邻插值
cv.INTER_LINEAR 双线性插值
cv.INTER_CUBIC 基于4x4像素邻域的3次插值法
cv.INTER_AREA 基于局部像素的重采样
通常,缩小使用cv.INTER_AREA,放缩使用cv.INTER_CUBIC(较慢)和cv.INTER_LINEAR(较快效果也不错)。默认情况下,所有的放缩都使用cv.INTER_LINEAR。
import cv2
img = cv2.imread('D:/image/yuner.jpg', cv2.IMREAD_UNCHANGED)
scale_percent = 30 # percent of original size
width = int(img.shape[1] * scale_percent / 100)
height = int(img.shape[0] * scale_percent / 100)
dim = (width, height)
# resize image
resized = cv2.resize(img, dim, interpolation = cv2.INTER_LINEAR)
fx = 1.5
fy = 1.5
resized1 = cv2.resize(resized, dsize=None, fx=fx, fy=fy, interpolation = cv2.INTER_NEAREST)
resized2 = cv2.resize(resized, dsize=None, fx=fx, fy=fy, interpolation = cv2.INTER_LINEAR)