OPenCV基本操作
阿新 • • 發佈:2021-08-06
1.影象的IO操作:
影象的讀取,輸出和顯示
'''先匯入import numpy as np 再匯入import cv2 as cv 最後匯入import matplotlib.pyplot as plt ''' img1 = cv.imread('kzf.jpg',1)#讀取影象 plt.imshow(img1) plt.show()#顯示影象 plt.imwrite('picture.jpg',img1)#將img1儲存在picture.jpg中
2.繪製集合影象,有影象的建立,直線,圓形,矩形,新增文字文字
import numpy as np import cv2 as cvimport matplotlib.pyplot as plt #1)建立影象大小 img = np.zeros((長,寬,線條寬度),np.uint8)#資料型別轉換為整型 img = np.zeros((512,512,5)條寬度),np.uint8) #繪製直線 cv.line(img,(左上角座標),(右下標座標),(顏色),線條寬度) cv.line(img,(0,0),(511,511),(255,0,0),5) #繪製圓形 cv.circle(img,(圓心座標),半徑長度,(顏色),線條寬度) cvcircle(img,(100,100),50),(0,255,0),5) #繪製矩形 cv.rectangle(img,(左上角座標),(右下標座標),(顏色),線條寬度) cv.rectangle(img,(0,0),(511,511),(0,0,255),5) #新增文字 cv.putText(img.新增字串,字型型別,字型大小,顏色,線條寬度) cv.putText(img, "hello",(100,100),cv.FONT_HERSHEY_COMPLEX,4,(255,255,255),5)
3.獲取影象的畫素點
import numpy as np import cv2 as cv import matplotlib.pyplot as plt img = cv.imread('kzf.jpg',1) px = img[100,100]#獲取影象的某個畫素點值 blue = img[100,100,0]#獲取藍色強度通道畫素值img[100,100] = [255,255,255]#修改畫素值
4.獲取影象的屬性
1)獲取影象的形狀:img.shape
2)獲取影象的大小:img.size
3)獲取影象的資料型別:img.dtype
5.影象的拆分和合並
1)影象的拆分
b,g,r = cv.split(img)
2)通道合併
img = cv.merge(b,g,r)
6.色彩空間轉換(常用的有兩種)
1)cv.COLOR_BGR2GRAY:BGR<-->GRAY gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY) plt.imshow(img,cmap = plt.cm.gray) 2)cv.COLOR_BGR2HSV:BGR<-->HSV hsv = cv.cvtColor(img,cv.COLOR_BGR2HSV) plt.imshow(hsv)
7.影象的加法和混合
1)注意:不管是影象的加法還是混合,必須影象的大小相同 import numpy as np import cv2 as cv import matplotlib.pyplot as plt img1 = cv.imread('kzf1.jpg',1) plt.imshow(img1) plt.show() img2 = cv.imread('kzf2.jpg',1) plt.imshow(img2) plt.show() 兩種形式相加: 第一種是OpenCV的cv.add()函式#飽和運算250+10 = 260輸出255 img3 = cv.add(img1,img2) plt.imshow(img3) plt.show() 第二種直接+直接相加#取模運算,250+10 = 160%256 = 4 img4 = img1+img2 plt.imshow(img4) plt.show()
影象的混合通過cv.Weighted()函式
img5 = cv.Weighted(img1,0.3,img2,0.7)