最近学习中会用到OpenCV,感觉OpenCV简单且功能强大,Python语言也简单易用,于是就学了Python版OpenCV。里面讲的比较简单,就先从简单的入手吧。
因为已经学习一段时间了,所以文章并不是按照OpenCV的顺序来写的,我会慢慢补齐以前学过的一些例子。
都是些简单的小栗子,大神勿喷,也恳请大家多多提意见交流。
下面的例子实现对图片的旋转,一些输入输出只是为了使用友好,删除也没有任何影响的。
def turnImage(imgpath,outpath):
print('***************The start****************')
imgname = imgpath.split('/')[-1]
name, dot = imgname.split('.')[0], imgname.split('.')[1]
basename = outpath + name + '_' + dot + '_TurnImage_30'
img = cv2.imread(imgpath,0)
rows, cols = img.shape
#这里的第一个参数为旋转中心,第二个为旋转角度,第三个为旋转后的缩放因子
#可以通过设置旋转中心,缩放因子,以及窗口大小来防止旋转超出边界的问题
M = cv2.getRotationMatrix2D((cols/2,rows/2),30,0.6)
#这里第三个参数是输出图像的尺寸中心
dst = cv2.warpAffine(img,M,(2*cols,2*rows))
cv2.imshow('Turn Inage',dst)#显示旋转后的图片
cv2.imshow(' Inage',img)
imgname_out1 =basename + 'img.jpg'
imgname_out2 =basename + 'dst.jpg'
cv2.imwrite(imgname_out1,img)#原图保存
cv2.imwrite(imgname_out2,dst)#保存旋转后的结果
cv2.waitKey(2000)#等待2000毫秒
cv2.destroyAllWindows()#关闭所有显示窗口
print('***************The end***************')
imgpath = '../testimage/football.jpg'#图片路径
outpath = 'Geometric_change/'#结果保存路径
turnImage(imgpath,outpath)
文件组织:
|--OpenCV
|--code 代码所在文件夹
|--Geometric_change.py 源代码文件
|--Geometric_change 保存结果的文件夹
|--testimage 加载图片的文件夹