安装OpenCV
首先 先下载一个whl文件,关于opencv的,
下载地址在这里:https://www.lfd.uci.edu/~gohlke/pythonlibs/
其次 导包 只是pip 时候名字对应,跟自己python3.x,win_xx对应就好 下完了
放到conda对应的文件夹里: d:\Anadonda3\Lib\site-packages
在该目录下,shift+右键,打开命令行: 输入(根据自己下载的版本3.4.x)
pip install opencv_python-3.4.0-cp36-cp36m-win_amd64.whl
Successfully
最后检查一下:
在cmd里键入:
python import cv2
如果没报错,那就安装成功喽 ~~
图像保存与加载
opencv基础知识直接上代码:
import cv2 as cv
import numpy as np
def get_image_info(image): # 图像相关的信息
print(type(image))
print(image.shape) # 获取shape信息
print(image.size)
print(image.dtype) # 编码类型
pixel_data = np.array(image)
print(pixel_data)
def video_demo(): # 读取摄像头
capture = cv.VideoCapture(0) # 打开电脑的摄像机
while(True):
ret, frame = capture.read() # frame 获取的镜像的图像
frame = cv.fill(frame, 1) # 左右翻转
cv.imshow("video", frame)
c = cv.waitKey(50)
if c == 27:
break
src = cv.imread("D:/JetBrains/PyCharm 2019.1.3/PycharmProjects/Study/opencv_study/Penguins.jpg") # 读取图像
cv.namedWindow("input img", cv.WINDOW_AUTOSIZE)
cv.imshow("input img", src) # 显示图像
get_image_info(src)
# video_demo()
cv.imwrite("C:/Users/Administrator/Desktop/1.png", src)
cv.waitKey(0)
cv.destroyAllWindows()
numpy数组的操作
np.zers()与np.ones()都是初始化图像,只不过zeros初始化的为0,ones的初始化为1.
cv.bitwise_not(src, dst=None, mask=None) 对象像素进行取反
import cv2 as cv
import numpy as np
def access_pixels(image):
print(image.shape)
height = image.shape[0] # 形状的第一个维度是高度
width = image.shape[1] # 形状的第二个维度是宽度
channels = image.shape[2] # 通道数目
print("width: %s, height: %s, channels: %s"%(height, width, channels))
# 循环每个像素
for row in range(height):
for col in range(width):
for c in range(channels):
pv = image[row, col, c]
image[row, col, c] = 255 - pv
cv.imshow("pixel_demo", image)
def insrvr(ima):
dec = cv.bitwise_not(ima) # 像素取反 同上函数作用 但这个会快很多
cv.imshow("imaged", dec)
def creat_image():
img = np.zeros([400, 400, 3], np.uint8) # 初始化0,创建图像(3通道的)
img[: , :, 0] = np.ones([400, 400]*255) # 初始化1,给他的第一个通道复制
cv.imshow("new imamg", img)
src = cv.imread("D:/JetBrains/PyCharm 2019.1.3/PycharmProjects/Study/opencv_study/Penguins.jpg")
cv.namedWindow("input img", cv.WINDOW_AUTOSIZE)
cv.imshow("input img", src)
t1 = cv.getTickCount() # 获取当前运行本句的时间
insrvr(src)
t2 = cv.getTickCount()
time = (t2-t1)/cv.getTickCount()*1000
print("time:%s"%(time))
cv.waitKey(0)
cv.destroyAllWindows()