python的opencv库_opencv-python库基础操作(一)

点赞再看,养成习惯!

点赞再看,养成习惯!

点赞再看,养成习惯!

opencv-python库基础操作

0.安装opencv-python

pip install opencv-python

进行下载并安装

不过在python中导入opencv库的时候需要

"import cv2"来进行导入

下面用一只非常经典的猫咪开始练习使用opencv

1.首先导包

import cv2 #opencv读取的格式是BGR,与一般的RGB不同

import matplotlib.pyplot as plt

import numpy as np

%matplotlib inline

#这样子就不需要plt.show()

2.读取图像数据

picture_path = "cat.jpg"

img = cv2.imread(picture_path)

看一下shape(可以发现是3通道的)

img.shape

img.size(用来查看图像总的像素有多少个)

3.将图片展示出来

cv2.imshow("image",img)

cv2.waitKey(0)

cv2.destroyAllWindows()

其实也可以使用

import matplotlib.pyplot as plt

plt.imshow(img)

来对图片进行展示

但,opencv读取的格式是BGR,与一般的RGB不同,直接读会长这样子:(需要opencv进行RGB的转换)

4.下面用函数进行“图像展示”的封装

def cv_show(name,img):

cv2.imshow(name,img)

cv2.waitKey(0)

cv2.destroyAllWindows()

5.转化为灰度图:

img = cv2.imread(picture_path, cv2.IMREAD_GRAYSCALE)

cv_show("img",img)

6.图像的保存

cv2.imwrite("mycat.png" , img )

7.截取部分图像数据

img = cv2.imread("cat.jpg")

cat = img[0:200, 0:300]

cv_show("cat" , cat)

8. 颜色通道提取

#注意顺序为BGR

b,g,r = cv2.split(img)

9.颜色通道合并

img = cv2.merge((b,g,r))

10.只保留单个颜色通道

#只保留R

cur_img = img.copy()

#将B,G通道设置为0

cur_img[:,:,0] = 0

cur_img[:,:,1] = 0

cv_show("R" , cur_img)

(纯红看着有点吓人!)

#只保留G

cur_img = img.copy()

#将B,R通道设置为0

cur_img[:,:,0] = 0

cur_img[:,:,2] = 0

cv_show("g" , cur_img)

#只保留B

cur_img = img.copy()

#将R,G通道设置为0

cur_img[:,:,1] = 0

cur_img[:,:,2] = 0

cv_show("B" , cur_img)

11.数值计算

因为读取进来之后就直接做np.array格式处理了,所以部分处理方式可以借鉴np.array

img_cat = cv2.imread("cat.jpg")

cv_show("123" , img_cat + 10)

img_cat = cv2.imread("cat.jpg")

img_cat2 = img_cat + 10

img_cat2 + img_cat

(因为我们的像素值范围是[0,255],所以如果相加>255,则会做%255处理)

12. 图像融合

img_cup = cv2.imread("1_51.jpg")

这个图片长这样:

如果直接相加:

img_dog + img_cat

则报错

需要先将某一张图片进行resize处理

img_dog = cv2.resize(img_dog , (640,391))#注意这里是x,y,而shape那边是y,x

img_dog.shape

同时对于这个resize函数,还可以使用缩小放大功能

res = cv2.resize(img_cat , (0,0) , fx = 2, fy = 2)

#这样子就是放大两倍

用addWeighted函数就可以将二者融合在一起!

res1 = cv2.addWeighted(img_cat,0.4,img_dog,0.6,20)

看起来还真是有点魔幻!

基础操作先到这里,接下来会上一些更加高级有用的操作!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值