Python opencv操作深入詳解

2022-09-25 23:27:10 字數 3421 閱讀 3366

直接讀取

def display_img(file="p.jpeg"):

img = cv.imread(file)

print (img.shape)

cv.imshow('image',img)

cv.waitkey(0)

cv.destroyallwindows()

讀取灰度

def display_gray_img(file="p.jpeg"):

img = cv.imread(file,cv.imread_grayscale)

print (img.shape)

cv.imshow('image',img)

cv.waitkey(0)

cv.destroyallwindows()

cv.imwrite("gray_img.png",img)

讀取**

def display_video(file="sj.mp4"):

v = cv.videocapture(file)

if v.isopened():

open,frame = v.read()

else:

open=false

while open:

ret,frame = v.read()

if frame is none:

break

if ret == true:

gray = cv.cvtcolor(frame,cv.color_bgr2gray)

cv.imshow("result",gray)

if cv.waitkey(10) & 0xff == 27:

break

v.release()

v.waitkey(0)

v.destroyallwindows()

擷取def get_frame_img(file="p.jpeg"):

img = cv.imread(file)

print (img.shape)

cat = img[0:200,0:200]

cv.imshow('get_frame_img',cat)

cv.waitkey(0

cv.destroyallwindows()

提取rgb通道

def extrats_rgb_img(file="p.jpeg"):

img = cv.imread(file)

b,g,r = cv.splwww.cppcns.comit(img)

print (b.shape,g.shape,r.shape)

new_img = cv.merge((b,g,r))

print (new_img.shape)

copy_img_r = img.copy()

copy_img_r[:,:,0]=0

copy_img_r[:,:,1]=0

cv.imshow("r_img",copy_img_r)

copy_img_g = img.copy()

copy_img_g[:,:,0]=0

copy_img_g[:,:,2]=0

cv.imshow("g_img",copy_img_g)

copy_img_b = img.copy()

copy_img_b[:,:,1]=0

copy_img_b[:,:,2]=0

cv.imshow("b_img",copy_img_b)

邊界填充

def border_fill_img(file="p.jpeg"):

border_type = [

cv.border_replicate,#複製法,複製邊緣

cv.border_reflect, #反射法,對感興趣的影象中的畫素在兩邊進行複製

cv.border_reflect_101,#反射法,以邊緣畫素為軸,對稱

cv.border_wrap,#外包裝法

cv.border_constant#常量法,常量填充

]border_title = [

"replicate",

"reflect",

"reflect_101",

"wrap",

"constant"

]img = cv.imread(file)

top_size,bottom_size,left_size,right_size = (50,50,50,50)

plt.subplot(231)

plt.imshow(img,"gray")#原始影象

plt.title("orignal")

for i in range(len(border_type)):

result = cv.copymakeborder(img,top_size,bottom_size,left_size,right_size,border_type[i])

plt.subplot(232+i)

plt.imshow(result,"gray")

plt.title(程式設計客棧border_title[i])

plt.show()

影象融合,變換

def img_compose(file1="tu.jpeg",file2="gui.jpeg"):

img_1 = cv.imread(file1)

img_2 = cv.imread(file2)

print (img_1.shape)

print (img_2.shape)

img_1= cv.resize(img_1,(500,500))

img_2= cv.resize(img_2,(500,500))

print (img_1.shape)

print (img_2.shape)

res = cv.addweighted(img_1,0.4,img_2,0.6,0)

plt.imshow(res)

plt.show()

res = cv.resize(img_1,(0,0),fx=3,fy=1)

plt.imshow(res)

plt.show()

res = cv.resize(img_2,(0,0),fx=1,fy=3)

plt.imshow(res)

plt.show()

二值化處理

Python OpenCV 基本操作

python opencv 基本操作 載入,顯示,儲存 opencv函式 cv2.imread cv2.imshow cv2.imwrite 載入img cv2.imread lena.jpg 0 引數1 的檔名 如果放在當前資料夾下,直接寫檔名就行了,如 lena.jpg 否則,需要給出絕對路徑,...

python opencv 模糊操作

不要在奮鬥的年紀 選擇安逸 均值模糊 1 基於離散卷積 2 定義好每個卷積核 3 不同卷積核得到不同的卷積效果 4 模糊是卷積的一種表象 均值模糊 2,8 高模糊2 寬模糊8 defblur demo image dst cv.blur image,2,8 cv.imshow blur demo d...

python opencv的一些基礎操作

列印的維度,高度,寬度,通道數 print img.size 畫素總數目 print img.dtype unit8 print img 顯示乙個 numpy 矩陣cv2.waitkey 顯示著,直到按下任意乙個鍵才被關掉 也可以先讀入彩色圖,在轉換為灰色圖 讀到不存在時,加入判斷語句,如果為空,做...