opencv-利用影象運算打碼圖像python

文章目錄

  • 前言
  • 一、影象運算是什麼?
    • 原圖:
  • 二、操作步驟
    • 1.引入庫
    • 2.讀入資料
    • 3.圖像操作:
    • 4.顯示結果:
    • 5.結果:
  • 總結

前言

隨著人工智慧的不斷發展,opencv這門技術也越來越重要,很多人都開啟了學習opencv,本文就介紹了opencv的基礎內容。


提示:以下是本篇文章正文內容,下面範例可供參考

一、影象運算是什麼?

影象的基本運算:相加、相減、相乘、相除、位運算、平方根、對數、絕對值等;
影象也可以放大、縮小、旋轉,
還可以擷取其中的一部分作為ROI(感興趣區域)進行操作;
各個顏色通道還可以分別選取及對各個顏色通道進行各種運算操作。
· 學習影象上的算術運算,加法,減法,位運算等。
·相關函式:cv2.add(),cv2.addWeighted() 等。

原圖:

熊出沒

二、操作步驟

1.引入庫

程式碼如下:

1
2
3
4
5
#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 #author:Kong DeXing
import cv2
import numpy as np

2.讀入資料

程式碼如下:

1
shengmi = cv2.imread("xiongchumo.jpg",0)#讀取圖像shengmi.jpg圖像

3.圖像操作:

程式碼如下:

1
2
3
4
5
6
7
8
height,width = shengmi.shape #選取shengmi.jpg的height和width
mask = np.zeros((height,width),dtype=np.uint8)#生成一個height和width相同的零矩陣
mask[50:160,90:200]= 255 #R0I感興趣區域等於255畫素點
key = np.random.randint(0,256,(height,width),dtype=np.uint8)#鑰匙等於xiongchumo.pnq
jiami = cv2.bitwise_xor(shengmi,key)#第一次xoR加密
jiamiface = cv2.bitwise_and(jiami,mask)#使用位「與"運算來選取所需內容
noface = cv2.bitwise_and(shengmi,(255-mask))#使用位「與"運算來選取所需內容
final = jiamiface + noface #jiamiface和noface兩幅影象疊加

4.顯示結果:

程式碼如下:

1
2
3
4
5
6
7
8
9
cv2.imshow("shengmi",shengmi)#顯示原圖1ena.bmp
cv2.imshow("mask",mask)#顯示零矩陣中有ROI感興趣區域的圖像
cv2.imshow("key",key)#顯示key鑰匙灰度圖
cv2.imshow("jiami",jiami)#顯示1ena.bmp用key加密的圖像
cv2.imshow("jiamiface",jiamiface)#顯示電矩陣中有1ena.bmp臉用key加密的圖像
cv2.imshow("noface",noface)#顯示lena.bmp臉用零矩陣加密的圖像
cv2.imshow("final",final)#顯示1ena.bmp的臉用key加密的圖像
cv2.waitKey(0)#等待鍵盤輸入0
cv2.destroyAl1Windows()#摧毀所有視窗

5.結果:

程式碼如下:
打碼


總結

以上就是今天要講的內容,本文僅僅簡單介紹了opencv利用影象運算打碼所需圖像,而影象運算提供了大量能使我們快速便捷地處理資料的函式和方法。