opencv圖像基礎學習

2.3圖像的加密解密

源碼如下:

import cv2
import numpy as np
import matplotlib.pyplot as plt
def passImg():img=cv2.imread('./image/cat.jpg',0)h,w=img.shape#生成一個密碼,加密key_img=np.random.randint(0,256,size=(h,w),dtype=np.uint8)img_addm=cv2.bitwise_xor(img,key_img)print(key_img.shape,img.shape)#解密img_jm=cv2.bitwise_xor(key_img,img_addm)plt.figure(figsize=(10, 7))plt.subplot(2, 2, 1), plt.title("cat"), plt.imshow(img)plt.subplot(2, 2, 2), plt.title("key"), plt.imshow(key_img)plt.subplot(2, 2, 3), plt.title("addom"), plt.imshow(img_addm)plt.subplot(2, 2, 4), plt.title("jiemi"), plt.imshow(img_jm)plt.show()if __name__ == '__main__':passImg()
  1. def passImg()::定義一個名為?passImg?的函數。
    • 使用?plt.figure?和?plt.subplot?以及?plt.imshow?函數將原始圖像、密鑰、加密圖像和解密圖像顯示在一個?2x2?的布局中。
    • img_jm = cv2.bitwise_xor(key_img, img_addm):使用?cv2.bitwise_xor?對密鑰和加密后的圖像進行異或操作,得到解密后的圖像?img_jm
    • img_addm = cv2.bitwise_xor(img, key_img):使用?cv2.bitwise_xor?對圖像和密鑰進行異或操作,得到加密后的圖像?img_addm
    • key_img = np.random.randint(0, 256, size=(h, w), dtype=np.uint8):生成一個與圖像大小相同(h?行?w?列)的隨機矩陣作為密鑰,元素范圍在?0?到?255?之間,數據類型為?uint8
    • h, w = img.shape:獲取圖像的高度?h?和寬度?w
    • img = cv2.imread('./image/cat.jpg', 0):以灰度模式(0?表示)讀取圖像?./image/cat.jpg?并存儲在?img?中。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/66291.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/66291.shtml
英文地址,請注明出處:http://en.pswp.cn/web/66291.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【機器學習】零售行業的智慧升級:機器學習驅動的精準營銷與庫存管理

我的個人主頁 我的領域:人工智能篇,希望能幫助到大家!!!👍點贊 收藏? 在當今數字化浪潮洶涌澎湃的時代,零售行業正站在轉型升級的十字路口。市場競爭的白熱化使得企業必須另辟蹊徑&#xff0…

Navicat Premium 原生支持阿里云 PolarDB 數據庫

近日,我司旗下的 Navicat Premium 軟件通過了阿里云 PolarDB 數據庫產品生態集成認證,這標志著 Navicat 通過原生技術全面實現了對秒級彈性、高性價比、穩定可靠的PolarDB 數據庫三大引擎(PolarDB MySQL版、PolarDB PostgreSQL版和 PolarDB f…

【SpringBoot應用篇】SpringBoot+MDC+自定義Filter操作traceId實現日志鏈路追蹤

【SpringBoot應用篇】SpringBootMDC自定義Filter操作traceId實現日志鏈路追蹤 解決的問題解決方案MDC具體邏輯ymllogback-spring.xmlTraceIdUtil操作工具類TraceIdFilter自定義過濾器GlobalExceptionHandler全局異常處理類TraceIdAspect切面UserController測試驗證 多線程處理M…

python如何解析word文件格式(.docx)

python如何解析word文件格式(.docx) .docx文件遵從開源的“Office Open XML標準”,這意味著我們能用python的文本操作對它進行操作(實際上PPT和Excel也是)。而且這并不是重復造輪子,因為市面上操作.docx的…

android wifi framework與wpa_supplicant的交互

android frmework直接與wpa_supplicant進行交互,使用aidl或者hidl 二、事件 framework注冊事件的地方: packages/modules/Wifi/service/java/com/android/server/wifi/SupplicantStaIfaceCallbackImpl.java class SupplicantStaIfaceCallbackImpl exte…

python爬蟲報錯日記

python爬蟲報錯日記 類未定義 原因:代碼檢查沒有問題**,位置錯了**,測試代碼包含在類里…… UnicodedecodeError錯誤 原因:字符沒有自動轉換成utf-8格式 KeyError:“href” 原因:前面運行正常&#x…

[ Spring ] Install Nacos on Ubuntu24

文章目錄 Download Nacos Package and UnzipConfigure NacosConfigure JAVA_HOME for Bash FileConfigure Default User and PasswordStartup NacosVisit Admin Webpage Download Nacos Package and Unzip https://github.com/alibaba/nacos/releases/download/3.0.0-alpha/na…

Swift語言的多線程編程

Swift語言的多線程編程 在現代軟件開發中,多線程編程是提高應用性能和響應速度的重要手段。尤其是在 iOS 和 macOS 開發中,由于用戶界面(UI)的交互性和復雜性,合理利用多線程可以極大地提升用戶體驗。本文將深入探討 Swift 語言中的多線程編…

第34天:Web開發-PHP應用鑒別修復AI算法流量檢測PHP.INI通用過濾內置函數

#知識點 1、安全開發-原生PHP-PHP.INI安全 2、安全開發-原生PHP-全局文件&單函數 3、安全開發-原生PHP-流量檢測&AI算法 一、通用-PHP.INI設置 參考: https://www.yisu.com/ask/28100386.html https://blog.csdn.net/u014265398/article/details/109700309 …

機器學習之決策樹(DecisionTree)

決策樹中選擇哪一個特征進行分裂,稱之為特征選擇。 特征選擇是找出某一個特征使得分裂后兩邊的樣本都有最好的“歸宿”,即左邊分支的樣本屬于一個類別、右邊分支的樣本屬于另外一個類別,左邊和右邊分支包含的樣本盡可能分屬同一類別&#xff…

進階——十六屆藍橋杯嵌入式熟練度練習(按鍵+LCD)

高亮(一) 聲明 char buf[21];unsigned char upled0x04;uint8_t key_val;uint8_t key_down,key_up,key_old;uint32_t key_time;uint8_t key_temp,key_flag;uint8_t line_flag; 按鍵代碼 void key_proc(void) { key_valkey_scan();key_downkey_val&…

基于PHP的校園新聞發布管理

摘要 近年來,隨著互聯網技術的迅速發展,人們獲取新聞的渠道也變得越來越多樣化,已經不再拘束于傳統的報紙、期刊、雜志等紙質化的方式,而是通過網絡滿足了人們獲得第一手新聞的愿望,這樣更加有助于實現新聞的規范化管…

MySQL程序之:使用DNS SRV記錄連接到服務器

在域名系統(DNS)中,SRV記錄(服務位置記錄)是一種資源記錄,它使客戶端能夠指定指示服務、協議和領域的名稱。DNS查找該名稱會返回一個回復,其中包含該領域中提供所需服務的多個可用服務器的名稱。…

代碼合并沖突解決push不上去的問題

環境:【IntelliJ IDEA】 【Gerrit】 1、錯誤信息 代碼合并,迭代1合并到迭代2,解決沖突后,依然push不上去,報錯信息如下: remote: Processing changes: refs: 1 remote: Processing changes: refs…

opencv projectPoints函數 computeCorrespondEpilines函數 undistortPoints函數

opencv projectPoints函數 cv::projectPoints 是 OpenCV 中用于將三維點投影到二維圖像平面的函數。它通常用于計算在相機坐標系下的三維點在圖像坐標系中的位置,考慮了相機的內參和外參。 函數原型 void cv::projectPoints(InputArray objectPoints,InputArray …

從玩具到工業控制--51單片機的跨界傳奇【3】

在科技的浩瀚宇宙中,51 單片機就像一顆獨特的星辰,散發著神秘而迷人的光芒。對于無數電子愛好者而言,點亮 51 單片機上的第一顆 LED 燈,不僅僅是一次簡單的操作,更像是開啟了一扇通往新世界的大門。這小小的 LED 燈&am…

boss直聘 __zp_stoken__ 逆向分析

聲明: 本文章中所有內容僅供學習交流使用,不用于其他任何目的,抓包內容、敏感網址、數據接口等均已做脫敏處理,嚴禁用于商業用途和非法用途,否則由此產生的一切后果均與作者無關! 有相關問題請第一時間頭像私信聯系我刪…

【日志篇】(7.6) ? 01. 在macOS下刷新FortiAnalyzer固件 ? FortiAnalyzer 日志分析

【簡介】FortiAnalyzer 是 Fortinet Security Fabric 安全架構的基礎,提供集中日志記錄和分析,以及端到端可見性。因此,分析師可以更有效地管理安全狀態,將安全流程自動化,并快速響應威脅。具有分析和自動化功能的集成…

Linux 內核自旋鎖spinlock(一)

文章目錄 前言一、自旋鎖1.1 簡介1.2 API1.2.1 spin_lock/spin_unlock1.2.2 spin_lock_irq/spin_unlock_irq1.2.3 spin_lock_irqsave/spin_unlock_irqstore1.2.4 spin_lock_bh/spin_unlock_bh1.2.5 補充 二、自選鎖原理三、自旋鎖在內核的使用3.1 struct file3.2 struct dentry…

【太古新篇,智馭未來】 SFA系統成功上線

經過雙方團隊的不懈努力與緊密合作,eBest成功幫助香港太古可樂完成了SFA系統的全面上線! 太古可樂,作為飲料行業的佼佼者,一直以來以其卓越的品質和深入人心的品牌形象深受消費者喜愛。然而,在快速變化的市場環境中&am…