OpenCV-图像的基本操作-01
生活随笔
收集整理的這篇文章主要介紹了
OpenCV-图像的基本操作-01
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
數(shù)據(jù)讀取-圖像
import cv2 #opencv讀取的格式是BGR import matplotlib.pyplot as plt import numpy as np %matplotlib inline img=cv2.imread('cat.jpg') img plt.imshow(img) #圖像的顯示,也可以創(chuàng)建多個窗口 cv2.imshow('image',img) # 等待時間,毫秒級,0表示任意鍵終止 cv2.waitKey(0) cv2.destroyAllWindows() # 定義顯示圖像函數(shù) def cv_show(name,img):cv2.imshow(name,img) cv2.waitKey(0) cv2.destroyAllWindows() cv_show("mao",img) img.shape # 高寬 3表示通道 代表彩色cv2.IMREAD_COLOR:彩色圖像
cv2.IMREAD_GRAYSCALE:灰度圖像
數(shù)據(jù)讀取-視頻
cv2.VideoCapture可以捕獲攝像頭,用數(shù)字來控制不同的設(shè)備,例如0,1。
如果是視頻文件,直接指定好路徑即可
截取部分圖像數(shù)據(jù)
img=cv2.imread('cat.jpg') # 讀取圖片 cat=img[0:50,0:200] # 切片 cv_show('cat',cat) # 顯示名字以及圖像顏色通道提取
b,g,r=cv2.split(img) # 彩色圖像通道:b g r # 讀取圖片
顏色通道B,G,R = 0,1,2
邊界填充
top_size,bottom_size,left_size,right_size = (50,50,50,50) # 上下左右 填充的值# img需要填充的圖像 上下左右 按照什么方式填充 replicate = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REPLICATE) reflect = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size,cv2.BORDER_REFLECT) reflect101 = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_REFLECT_101) wrap = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_WRAP) constant = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size,cv2.BORDER_CONSTANT, value=0) import matplotlib.pyplot as plt plt.subplot(231), plt.imshow(img, 'gray'), plt.title('ORIGINAL') plt.subplot(232), plt.imshow(replicate, 'gray'), plt.title('REPLICATE') plt.subplot(233), plt.imshow(reflect, 'gray'), plt.title('REFLECT') plt.subplot(234), plt.imshow(reflect101, 'gray'), plt.title('REFLECT_101') plt.subplot(235), plt.imshow(wrap, 'gray'), plt.title('WRAP') plt.subplot(236), plt.imshow(constant, 'gray'), plt.title('CONSTANT')plt.show()
BORDER_REPLICATE:復制法,也就是復制最邊緣像素。
BORDER_REFLECT:反射法,對感興趣的圖像中的像素在兩邊進行復制例如:fedcba|abcdefgh|hgfedcb
BORDER_REFLECT_101:反射法,也就是以最邊緣像素為軸,對稱,gfedcb|abcdefgh|gfedcba
BORDER_WRAP:外包裝法cdefgh|abcdefgh|abcdefg
BORDER_CONSTANT:常量法,常數(shù)值填充。
數(shù)值計算
# 讀取圖片 img_dog=cv2.imread('dog.jpg') img_cat=cv2.imread('cat.jpg') img_cat[:5,:,0] # 只打印前5行 img_cat2= img_cat + 10 img_cat2[:5,:,0] # 只打印前5行 #相當于% 256 (img_cat + img_cat2)[:5,:,0]
圖像融合
res = cv2.resize(img, (0, 0), fx=4, fy=4) # 假入我們不知道圖像大小為0,0, 倍數(shù): fx=4:x*4 fy=4:y*4 比例放縮 plt.imshow(res) res = cv2.resize(img, (0, 0), fx=1, fy=3) plt.imshow(res) img_dog=cv2.imread('dog.jpg') img_cat=cv2.imread('cat.jpg')# 讀取圖片 img_dog = cv2.resize(img_dog, (500, 414)) # 修改圖片大小 img_cat.shape,img_dog.shape # 貓= x1 狗= x2# 貓 權(quán)重 狗 權(quán)重 亮度# x1,α x2, β ,b res = cv2.addWeighted(img_cat, 0.5, img_dog, 0.5, 0) plt.imshow(res)總結(jié)
以上是生活随笔為你收集整理的OpenCV-图像的基本操作-01的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GAN生成对抗网络-text to im
- 下一篇: OpenCV-图像的基本处理-02