opencv python學習筆記八

2021-07-24 18:58:37 字數 2524 閱讀 5257

影象上的算術運算

常用運算有:加法  減法  位運算

cv2.add()

cv2.addweighted()

函式原型

defadd(src1,

src2,

dst=none,

mask=none,

dtype=none)

defaddweighted(src1, #第乙個原陣列

alpha,#第乙個原陣列的權值

src2,#第二個原陣列

beta,#第二個陣列的權值

gamma,#新增的常數項

dst=none,#輸出陣列

dtype=none)#輸出陣列的可選深度

1 影象加法

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @time    : 2016/11/14 15:19

# @author  : retacn

# @site    :

影象的算術運算

# @file    : imagearithmetic.py

# @software: pycharm

importcv2

importnumpyasnp

frommatplotlibimportpyplotasplt

x=np.uint8([250])

y=np.uint8([10])

print(cv2.add(x,y))#250+10=260=>255

print(x+y)#250+10=260%256=4

#顯示結果

# [[255]]

#[4]

2 影象混合

計算公式如下:

g(x)=(1-a)f0(x)+af1(x)

使用如下函式進行混合

3 按位與運算

and or not xor

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @time    : 2016/11/15 8:42

# @author  : retacn

# @site    :

按位與運算

and  or  not  xor

# @file    : imagelogic.py

# @software: pycharm

importcv2

importnumpyasnp

#載入影象

img2=cv2.imread("test.jpg")#建立

roirows,cols,channels=img2.shape

roi=img1[0:rows,0:cols]#建立

mask

img2gray=cv2.cvtcolor(img2,cv2.color_bgr2gray)

ret,mask=cv2.threshold(img2gray,175,255,cv2.thresh_binary)

mask_inv=cv2.bitwise_not(mask)#取

roi中與

mask

中不為零的值對應有畫素數

img1_bg=cv2.bitwise_and(roi,roi,mask=mask)

img2_fg=cv2.bitwise_and(img2,img2,mask=mask_inv)

#roi

合併影象

dst=cv2.add(img1_bg,img2_fg)

img1[0:rows,0:cols]=dst

#顯示影象

cv2.imshow("imagelogic",img1)

cv2.waitkey(0)

cv2.destroyallwindows()

opencv python學習筆記十一

14 幾何變換 移動,旋轉 仿射變換 常用函式 cv2.getperspectivetransform 函式原型 defgetperspectivetransform src,dst cv2.warpaffine 函式原型,接收 2 3的矩陣 defwarpaffine src,輸入源影象 m,透視...

OpenCV python學習筆記 二

不多說,上 全在裡面 coding utf 8 import numpy as np import cv2 目標 獲取畫素值並修改 獲取影象的資訊 影象的rio 圖象通道的拆分及合併 step1 獲取影象的資訊 讀取 讀入彩色圖和灰度圖 獲取資訊 影象的資訊包括 行 列 通道 影象資料型別 畫素數目...

OpenCV python 學習筆記 三

不多說,直接上 coding utf 8 影象上的算數運算 目標 學習影象上的算術運算,加法 減法 位運算 主要函式 cv2.add cv2.addweighted 等 import cv2 import numpy as np 影象上的加法 大致有兩種 cv2.add 這是乙個飽和操作 這是num...