opencv图像处理(读取展示+属性+切割+通道拆分)

正确安装导入opencv-python

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()

结果如下:
opencv图像处理(读取展示+属性+切割+通道拆分)_第1张图片只裁处来了一部分,然后我们再把这部分贴到其他位置

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()

结果如下,刚刚裁出来的被贴到了下面:
opencv图像处理(读取展示+属性+切割+通道拆分)_第2张图片
图像通道拆分
图形通道 可以到百科看一下什么是图形通道,利用一个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图像处理(读取展示+属性+切割+通道拆分)_第3张图片
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)

你可能感兴趣的:(python,opencv,opencv,图像处理)