cv2.resize(img,None,fx = 2,fy = 2,interpolation =cv2.INTER_CUBIC)
函数fx和fy是X轴和Y轴的比例因子,interpolation是插值方法如下所示:
插值方法:
INTER_NEAREST - 最近邻居插值
INTER_LINEAR - 双线性插值(默认使用)
INTER_AREA - 使用像素区域关系重采样。这可能是图像抽取的首选方法,因为它可以产生无莫尔效应的结果。但是当图像放大时,它与INTER_NEAREST 方法类似 。
INTER_CUBIC - 在4x4像素邻域上的双三次插值
INTER_LANCZOS4 - 在8x8像素邻域上的Lanczos插值
import cv2
import numpy as np
img = cv2.imread('test.jpg')
res = cv2.resize(img,None,fx = 2,fy = 2,interpolation = cv2.INTER_CUBIC)
while(1):
cv2.imshow('res',res)
cv2.imshow('img',img)
if cv2.waitKey(1)&0xFF == 27:
break
cv2.destroyAllWindows()
用简单的python程序批量处理照片
import cv2
import numpy as np
Direct='C:\\Users\\Administrator\\Desktop\\kk\\'
txt_string = open(Direct+"cam.txt",'r').read()
img_names = txt_string.splitlines()
for ii in range(len(img_names)):
print ii+1
filename1 = Direct+ img_names[ii]
print filename1
img = cv2.imread(filename1)
res = cv2.resize(img,None,fx = 0.5,fy = 0.5,interpolation = cv2.INTER_CUBIC)
cv2.imwrite(Direct+'a'+img_names[ii]+'.JPG',res)
print Direct+'a'+img_names[ii]+'.JPG'
if cv2.waitKey(1)&0xFF == 27:
break