OpenCV python 學習筆記 三

2021-07-27 03:54:23 字數 2761 閱讀 1458

不多說,直接上**:

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

# 影象上的算數運算

# 目標:

# 學習影象上的算術運算,加法、減法、位運算

# 主要函式:cv2.add()、cv2.addweighted()等

import cv2

import numpy as np

# 影象上的加法

# 大致有兩種:

# cv2.add():這是乙個飽和操作

# +:這是numpy中的運算,之一種模操作,res = img1 + img2

# 注意兩幅的大小型別必須一致,或者第二個圖象是乙個標量

# 由於兩者的差別,我們一般多用cv2.add(src1, src2)

## x = np.uint8([250])

# y = np.uint8([10])

## print x+y

# print cv2.add(x,y)

# # [4] 解釋:(250+10)%255 這是模運算

# # [[255]] 解釋:(250+10)>255?255:(250+10) 這是飽和運算

# 影象的混合

# 原理:也是加法,只是權重不同,給人一種混合的或者透明的感覺

# 公式:g(x) = (1-a)*f0(x) + a*f1(x) a→(0,1)不同的a值可以實現不同的效果

# # 效果很讚

# 按位運算

# 問題:如何將乙個圖放到另乙個圖上去,加法會改變顏色,混加會透明

# 解決:按位運算

## gray_img2 = cv2.cvtcolor(img2, cv2.color_bgr2gray) # 將灰度化

# ret, mask = cv2.threshold(gray_img2, 175, 255, cv2.thresh_binary) # 不了解

# mask_inv = cv2.bitwise_not(mask) # 按位運算

# img1_bg = cv2.bitwise_and(roi, roi, mask = mask) # 同上

# img2_fg = cv2.bitwise_and(img2,img2,mask = mask_inv) # 同上

## dst = cv2.add(img1_bg,img2_fg)

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

## cv2.imshow("show", img2_fg)

# cv2.waitkey(0)

# cv2.destroyallwindows()

# 練習:建立乙個幻燈片,來演示如何將一幅圖平滑轉換到另一幅圖,使用函式cv2.addweighted()

# 按'esc'退出

cv2.destroyallwindows()

# ret, mask = cv2.threshold(gray_img2, 175, 255, cv2.thresh_binary)       # 不了解

我不是很了解,望解答(自勉)

這次把兩張也上傳

opencv python學習筆記八

十 影象上的算術運算 常用運算有 加法 減法 位運算 cv2.add cv2.addweighted 函式原型 defadd src1,src2,dst none,mask none,dtype none defaddweighted src1,第乙個原陣列 alpha,第乙個原陣列的權值 src2...

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 獲取影象的資訊 讀取 讀入彩色圖和灰度圖 獲取資訊 影象的資訊包括 行 列 通道 影象資料型別 畫素數目...