openCV专栏(二):基础计算实战+色彩空间转换
生活随笔
收集整理的這篇文章主要介紹了
openCV专栏(二):基础计算实战+色彩空间转换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
OPENCV基礎操作
提示:本專欄所用版本僅供參考,其他版本也可
| python | Python 3.9.3 |
| opencv | 4.5.5 |
| matplotlib | 3.4.3 |
| numpy | 1.19.5 |
學習目錄
- (一)使用matplotlib庫繪制圖表
- (二)使用秘鑰加密圖像
- 1:加密
- 2:解密(二合一)
- (三)位平面分解
- (四)色彩空間
- 1:色彩空間基本內容
- 2:色彩空間類型轉換
- (五)結束語
(一)使用matplotlib庫繪制圖表
?? 簡介:matplotlib是Python最常用的繪圖庫,提供了一整套十分適合交互式繪圖的命令具。
?? 學習任務:簡單使用matplotlib庫創建畫布并加載圖片至畫布
代碼:
import matplotlib.pyplot as plt #導入模塊#創建一個300*300*3的三維矩陣 img1 = np.ones((300,300,3),np.uint8)#在img1的基礎上計算并創建等大矩陣 img2 = img1*80 img3 = img1*160 img4 = img1*255#加載圖像至畫布 plt.subplot(2,2,1)#在畫布上創建行2,列2的四個區域,并指向區域1 plt.imshow(img1,'gray')#將img1加載至區域1 plt.title(1)#設置區域1的標題plt.subplot(2,2,2)#在畫布上創建行2,列2的四個區域,并指向區域2 plt.imshow(img2,'gray')#將img2加載至區域2 plt.title(2)#設置區域2的標題plt.subplot(2,2,3)#在畫布上創建行2,列2的四個區域,并指向區域3 plt.imshow(img3,'gray')#將img3加載至區域3 plt.title(3)#設置區域3的標題plt.subplot(2,2,4)#在畫布上創建行2,列2的四個區域,并指向區域4 plt.imshow(img4,'gray')#將img4加載至區域4 plt.title(4)#設置區域4的標題#顯示圖像 plt.show()運行結果:
(二)使用秘鑰加密圖像
?? 原理:圖像與手動生成的秘鑰圖像進行按位異或操作,實現加密,反之解密
?? 作用:隱藏圖像
?? 擴展:利用簡單的原理制作一個圖像解碼器
1:加密
import cv2 import numpy as np import matplotlib.pyplot as pltimg = cv2.imread('./111.jpg',0)# 0 代表讀入一張灰度圖像# 2:構建秘鑰圖像 mask = np.random.randint(0,255,(img.shape),dtype = np.uint8)#深成一張img大小的uint8類型的矩陣# 3:加密 maskimg = cv2.bitwise_xor(img,mask)#邏輯位異或操作# 4:加載圖片至畫布 plt.subplot(121) plt.imshow(maskimg,'gray') plt.title("maskimg") plt.show()2:解密(二合一)
# 1:獲取灰度圖像 img = cv2.imread('./111.jpg',0)# 2:構建秘鑰圖像 mask = np.random.randint(0,255,(img.shape),dtype = np.uint8)# 3:加密 maskimg = cv2.bitwise_xor(img,mask)# 4:加載圖片至畫布 plt.subplot(121) plt.imshow(maskimg,'gray') plt.title("maskimg")# 二:解密 unmaskimg = cv2.bitwise_xor(maskimg,mask)# 5:加載圖片至畫布 plt.subplot(122) plt.imshow(unmaskimg,'gray') plt.title("unmaskimg")# 6:顯示圖像 plt.show()運行結果:
(三)位平面分解
?? 原理:逐一分解灰度圖每個比特位的二進制像素值,得到八個二進制圖效果:從第0個位平面到第7個位平面分別表現了對圖像的不同影響
?? 數學處理:按位與保留當前比特位
?? 擴展:可將水印圖片藏于影響最小的第0位面中,增加隱蔽性
運行結果:
(四)色彩空間
1:色彩空間基本內容
?? 介紹:在處理圖像的過程中,我們總是說RGB圖像。在opencv中,RGB是一種比較常見的色彩空間類型,除此之外,還有一些其他的色彩空間,常見的如下:
| GRAY | 灰度圖【單一通道的圖像】 |
| XYZ | 更便于計算的色彩空間(常與RGB互相轉換) |
| Ycrcb | 加入了亮度的色彩空間 |
| HSV | 人眼感知的模型[色調[0~360],飽和度[0 ~1],亮度[0 ~1]] |
| HLS | 類型HSV[色調[0 ~360],亮度/明度[0 ~1],飽和度[0 ~1]] |
| CIEL*a*b | 均勻色彩空間模型 |
| CIEL*u*v | 適用于顯示器顯示和根據加色原理組合的場景 |
| Bayer | 用于CCD和CMOS相機中的顏色空間 |
| Bayer | 用于CCD和CMOS相機中的顏色空間 |
2:色彩空間類型轉換
| 參數 | |
| src:輸入圖像 | |
| code:色彩空間轉碼【枚舉】 | |
| dstCn:被轉碼圖像通道數 默認表示自動獲取 | |
| 返回值:輸出轉碼圖像 | |
運行結果:(可以看到不同的色彩空間效果不同)
(五)結束語
?? 以上就是今天所要分享的內容了
?? 學習路漫漫,我們仍需負重前行……
?? 為此博主新創建了一個群,期待你們的加入:
?? QQ群:928357277
歡迎加入我們的大家庭:928357277
總結
以上是生活随笔為你收集整理的openCV专栏(二):基础计算实战+色彩空间转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人事小姐姐找我提需求:一键生成这个月的假
- 下一篇: 从共享单车到共享女友的一地鸡毛