<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
影象可以進行算術運算,例如加法、減法和按位元運算(AND、OR、NOT、XOR)。這些操作可以幫助改善輸入影象的屬性。
影象演演算法對於分析輸入影象的屬性是必要的,可以將操作後的影象用作增強的輸入影象,並且可以對影象應用更多操作,以進行閾值化、膨脹等。
影象算術是將一幅或多幅影象應用於標準算術運算或邏輯運運算元之一。運運算元是逐個畫素應用的,因此輸出影象中畫素的值僅由輸入影象中相應畫素的值決定。
因此,影象通常必須具有相同的大小。當向影象新增恆定偏移量時,輸入影象之一可能是恆定值。
雖然影象演演算法是影象處理的最基本形式,但它有很多應用。算術運運算元的一個顯著優勢是該過程簡單明瞭,因此速度很快。
在其最基本的形式中,該運運算元將兩個相同大小的影象作為輸入,並輸出與前兩個相同大小的第三個影象,每個畫素值是兩個輸入影象中每個影象中對應畫素值的總和. 更高階的版本允許在一次操作中組合多個影象。
運運算元的一個常見變體只是允許向每個畫素新增一個指定的常數。使用函數 cv2.add(),我們可以新增兩個影象。這直接將兩個影象中的影象畫素相加。
Syntax: cv2.add(image1, image2)
但是,新增畫素並不是一個理想的情況。因此,我們使用 cv2.addweighted()。請記住,兩個輸入影象的形狀和顏色通道必須相同。
Syntax: cv2.add Weighted(image1, weight1, Image2, weight2, gammaValue)
引數:
image1:第一個影象陣列輸入
weight 1:輸入影象中第一個用於最終影象的影象元素的權重。
image2:第二個影象陣列輸入
weight 2:將第二輸入影象元素的權值應用於最終影象的伽馬值。
gammaValue:光測量。
加法程式碼
import cv2 import numpy as np image1 = cv2.imread('input1.jpg') image2 = cv2.imread('input2.jpg') weightedSumadd = cv2.addWeighted(image1, 0.6, image2, 0.4, 0) cv2.imshow('Weighted Image', weightedSumadd) cv2.waitKey(0) cv2.destroyAllWindows()
輸出影象將是:
畫素減法運算元將兩幅影象作為輸入並輸出第三幅影象,其畫素值是第一幅影象的畫素值減去第二幅影象的相應畫素值。
使用單個影象作為輸入是常見的,從所有畫素中減去一個常數值也是常見的。一些版本的運運算元將簡單地輸出畫素值之間的絕對差,而不是直接的有符號輸出。
Syntax: cv2.subtract(image1, image2)
引數:
圖 1:第一個影象陣列輸入(單通道、8 位或浮點)
圖 2:第二個影象陣列輸入(單通道、8 位或浮點)
輸入影象
程式碼 :
import cv2 import numpy as np image1 = cv2.imread('input1.jpg') image2 = cv2.imread('input2.jpg') sub = cv2.subtract(image1, image2) cv2.imshow('Subtracted Image', sub) cv2.waitKey(0)
輸出減去的影象將是
位運算用於影象處理以提取重要部分。本文中使用了以下按位元運算:
位運算對於影象遮罩也很有用。這些操作可用於啟用影象建立。這些操作可以幫助改善輸入影象的屬性。
注意:按位元運算只能在相同尺寸的輸入影象上執行。
AND 運運算元(以及類似方式的 NAND 運運算元)通常將兩個二進位制或整數灰度級影象作為輸入,並生成第三個影象,其畫素值只是第一個影象的畫素值與來自第二個影象的相應畫素相乘。
可以修改此運運算元以通過獲取單個輸入影象,並將每個畫素與預定的常數值進行與運算來產生輸出。
Syntax: cv2.bitwise_and(Image1, Image2, destination, mask)
引數:
Image1:第一個輸入影象 numpy 陣列
Image1:第二個輸入影象numpy陣列
destination:輸出陣列
mask: 操作掩碼影象
程式碼 :
import cv2 import numpy as np img1 = cv2.imread('input1.png') img2 = cv2.imread('input2.png') dest_and = cv2.bitwise_and(img2, img1, mask = None) cv2.imshow('Bitwise And', dest_and) cv2.waitKey(0)
OR 運運算元通常將兩個二進位制或灰度影象作為輸入,並輸出第三個影象,其畫素值是第一個影象的畫素值與來自第二個影象的相應畫素進行或運算。
該運運算元的一個變體採用單個輸入影象並將每個畫素與一個常數值進行 OR 運算以生成輸出。
Syntax: cv2.bitwise_or(source1, source2, destination, mask)
引數:
source1 :第一個輸入 numpy 影象陣列
source2 :第二個輸入 numpy 影象陣列
目的地:輸出陣列影象
mask :操作掩碼,輸入/輸出 8 位單通道掩碼。
程式碼 :
import cv2 import numpy as np img1 = cv2.imread('input1.png') img2 = cv2.imread('input2.png') dest_or = cv2.bitwise_or(img1, img2, mask = None) cv2.imshow('Bitwise OR', dest_or) cv2.waitKey(0)
邏輯非,也稱為反轉,是一種將二值或灰度影象作為輸入並生成其照相底片的運運算元。
Syntax: cv2.bitwise_not(Image1,Destination, mask)
引數:
Image1: 輸入影象陣列
Destination:輸出陣列影象
mask: 操作掩碼
程式碼 :
import cv2 import numpy as np img1 = cv2.imread('input1.png') dest_not = cv2.bitwise_not(img1, mask = None) cv2.imshow('Bitwise Not', dest_not) cv2.waitKey(0)
至關重要的是,正在處理的所有輸入畫素值都具有相同的位數,否則可能會出現意外結果。當輸入影象中的畫素值不是簡單的 1 位數位時,XOR 操作通常(但不總是)對畫素值中的每個對應位按位元執行。
Syntax: cv2.bitwise_xor(source1, source2, destination, mask)
引數:
source1 :第一個輸入影象陣列(單通道、8 位或浮點)
source2 :第二個輸入影象陣列(單通道、8 位或浮點)
目的地:輸出影象陣列
mask :操作掩碼,輸入/輸出8位元單通道掩碼。
程式碼 :
import cv2 import numpy as np img1 = cv2.imread('input1.png') img2 = cv2.imread('input2.png') dest_or = cv2.bitwise_xor(img1, img2, mask = None) cv2.imshow('Bitwise XOR', dest_xor) cv2.waitKey(0)
許多應用程式使用從同一場景的不同點獲取的經過處理的影象,例如通過新增相同場景的連續影象來降低噪聲或通過減去兩個連續影象來進行運動檢測。邏輯運運算元經常用於組合兩個(主要是二進位制)影象。
在整數影象的情況下,邏輯運運算元通常按位元使用。然後,例如,我們可以使用二進位制掩碼來選擇影象的特定區域。
關鍵要點:
在本文中,我們學習瞭如何對影象執行各種算術運算,OpenCV 方法是如何工作的,以及這些影象算術運算在哪裡使用。
以上就是詳解影象上的OpenCV算術運算的詳細內容,更多關於OpenCV影象算術運算的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45