from cv2 import cv2
import numpy as numpy
安装完opencv和numpy之后在cmd窗口中测试一下是否安装成功,大多数情况下的错误都是因为没有成功安装而引起的。
读取、展示、存储图像
from cv2 import cv2
import numpy as numpy
img = cv2.imread('1.jpg')
cv2.imshow('love!',img)
cv2.imwrite('2,png',img)
cv2.waitKey(0) # 使图像停留而不是一闪而过
cv2.destroyAllWindows()
使用cv2.imread()读入图像,图像路径相对路径和绝对路径都可以,第二个参数是告诉函数应该如何读取这幅图片
cv2.IMREAD_COLOR:读入一副彩色图像。图像的透明度会被忽略,这是默认参数。
cv2.IMREAD_GRAYSCALE:以灰度模式读入图像,也可以用0表示,也就是你可以
img = cv2.imread('1.jpg',0)
这样就会读出来一个去色的图像。
使用**cv2.imshow()**显示图像,第一个参数是窗口名,第二个参数是读入的图像。
cv2.imwrite(‘2.png’,img) 前面为文件名,后面为你要保存的图像。
获取属性
图像属性包括:行列,通道(色彩),图像数据类型,像素数目等。
img.shape返回图像的长宽等数据
img.size会返回图像的像素数
img.dtype返回的是图像的数据类型
from cv2 import cv2
import numpy as np
img = cv2.imread('love.jpg')
print("img.size = ",img.size)
print("img.shape = ",img.shape)
print("img.dtype = ",img.dtype)
切割图片
利用numpy可以很好的操作
from cv2 import cv2
import numpy as np
img = cv2.imread('jm.jpg')
eye = img[60:180,0:550]
cv2.imshow('lll',eye)
cv2.waitKey(0)
cv2.destroyAllWindows()
结果如下:
只裁处来了一部分,然后我们再把这部分贴到其他位置
from cv2 import cv2
import numpy as np
img = cv2.imread('jm.jpg')
eye = img[60:180,0:550]
img[160:280,0:550] = eye # 注意img中的长宽大小一定要与eye中裁剪出来的大小一样
cv2.imshow('lll',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
结果如下,刚刚裁出来的被贴到了下面:
图像通道拆分
图形通道 可以到百科看一下什么是图形通道,利用一个split函数直接拆分。
from cv2 import cv2
import numpy as np
img = cv2.imread('jm.jpg')
b,g,r = cv2.split(img)
cv2.imshow('lll',b)
cv2.waitKey(0)
cv2.destroyAllWindows()
结果如下:
opencv图像大小调节
大小调节利用opencv中的一个函数,cv2.resize()
具体函数用法格式如下:
img = cv2.resize(img, (300, 75))
直接修改图像的宽度和高度分别为300和75,传递一个numpy参数和调整后的元组参数即可。
cv2.putText(image, text, (5,50 ), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 0, 255), 2)
cv2.matchTemplate(img,img_t,cv2.TM_CCOEFF_NORMED)
rectangle(img0, other_loc, (other_loc[0] + w, other_loc[1] + h), (0, 0, 225), 2)
cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)