首先,你要装opencv
大概是这个命令
brew install opencv3 --without-python —with-python3
或者你可以把python3和python对调一下,大概就是选择装给py3还是py2,当然你也能装给c艹。然后你进python3试一下
import cv2
如果报错,你可能需要搜索一下,可能是要复制某个文件到某个目录,记不住了。
下面就当你装好了
import numpy as np
import cv2
from copy import deepcopy as dp
from matplotlib import pyplot as plt
img = cv2.imread('13.jpg',1)
看官方文档,imread两个参数,第一个是图片的路径,第二个是读取模式,1是正常读入,0是灰度模式,-1是加个alpha通道(不是很懂这个)
然后这个函数返回的是一个numpy的数组,你可以用xx.shape查看数组属性,里面元素默认好像是uint8,0–255
画图是这个
cv2.imshow('image',new2)
cv2.waitKey(0)
cv2.destroyAllWindows()
第一个是画图,第二个是等待一个按键,第三个是关闭窗口,窗口默认名称是image
0的话只会返回一个值(灰度显然只有一个),1是返回RGB三个值
cv2.waitKey(0)
这个的返回值就是ASCII码
然后你就能把图片显示出来了。
剩下的操作都是在这个数组上做文章了
打码
打码就是把图片变成模糊的嘛
你就把每个点的值取成它那一块的平均值
比如3*3的方阵求个平均作为其左上角那个点的值
n=img.shape[0]
m=img.shape[1]
new = np.zeros((n,m),np.float32)
造个新数组存个新图
然后操作new数组做个循环处理即可
这种打码会有个问题,打码后的图片会有水纹
当然打码也会有更好的方式,看官方文档吧
还有其他的操作,去看官方文档吧,遁了
http://opencv-python-tutroals.readthedocs.io/en/latest/index.html
http://old.sebug.net/paper/books/scipydoc/index.html