运用opencv实现简单的图像操作

简单介绍OpenCV

OpenCV是由英特尔公司发起并参与开发的一个跨平台计算机视觉库,可用于开发实时的图像处理计算机视觉,以及模式识别程序

安装opencv

直接使用pip就可以进行安装

pip install opencv-python

opencv的基本使用

读取图片

import cv2 as cv #导入opencv
img=cv.imread(r'图片路径')#读取图片路径,不能含有中文,不然无法读取数据
cv.imshow('自拟图片名称',img)
cv.waitKey(0)#等待键盘的输入   单位是毫秒   传入0即表示一直显示该图片
cv.destroyAllWindows()#c++语言 使用完内存必须释放

图片灰度转换

在计算机视觉中有三种常用的色彩空间:灰度, BGR, HSV。
灰度色彩空间是通过去除色彩信息来将其转化成灰阶,灰度色彩空间对中间处理特别有效,如人脸识别。
灰度转换的作用:转换成灰度的图片的计算强度降低

import cv2 as cv
src = cv.imread(r'图像路径')#注意图片路径中\应改为/
cv.imshow('input image',src)
#cv2 读取图片的通道是BGR(蓝红绿)
#PIL 读取图片的通道是RGB
gray_img=cv.cvtColor(src,code=cv.COLOR_BGR2GRAY)
cv.imshow('gray_img',gray_img)
cv.waitKey(0)
cv.destroyAllWindows()
#保存图片
cv.imwrite('图片名称',gray_img)

在这里插入图片描述

修改图片尺寸

import cv2 as cv
img=cv.imread(r'图片路径')#读取图片路径,不能含有中文,不然无法读取数据
cv.imshow('input image',img)
#修改图片的尺寸  使用dsize(宽度,高度)来修改
#resize_img=cv.resize(img,dsize=(110,160))
resize_img=cv.resize(img,dsize=(400,360))
print(resize_img.shape)
cv.imshow('resize_img',resize_img)
#如果键盘输入的是 q 时候 退出
while True:
   if ord('q') == cv.waitKey(0):
          break
cv.destroyAllWindows()

在这里插入图片描述

展示图片的三通道图

# 导入opencv库
import cv2

# 读取图片
img = cv2.imread(r'图片路径')#注意图片路径中\应改为/

# 展示图片
# cv2.imshow("Dog and Cat",img)
# cv2.waitKey(0)

print(img.shape)


# imgR = cv2.resize(img,(320,225))

imgR = cv2.resize(img,(0,0),fx=0.25,fy=0.25)

# 裁剪图片 img[y的起始:y的结束,x的起始:x的结束]
imgC = img[40:440,60:370]

# convert two====to
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
print("Shape of gray:",gray.shape)

# 取出各个通道的信息 BGR
blue = img.copy()
blue[:,:,1] = 0
blue[:,:,2] = 0
green = img.copy()
green[:,:,0] = 0
green[:,:,2] = 0
red = img.copy()
red[:,:,0] = 0
red[:,:,1] = 0

cv2.imshow("blue",blue)
cv2.imshow("green",green)
cv2.imshow("red",red)

print("blue:",blue.shape)
cv2.waitKey(0)

在这里插入图片描述

画图

直线

在一个平面上,确定两个点就可以画出一条直线
函数:cv2.line(img,(x1,y1),(x2,y2),(B,G,R),画笔粗细)

import cv2
img = cv2.imread(r'图片路径')#注意图片路径中\应改为/
#画图相应代码填写
img = cv2.line(img,(60,40),(370,440),(0,0,255),2)
cv2.imshow('Original',img)
cv2.waitKey(0)
矩形

在一个平面上,确定两个点就可以画出一个矩形
函数:cv2.rectangle(img,(x1,y1),(x2,y2),(B,G,R),画笔粗细)

import cv2
img = cv2.imread(r'图片路径')#注意图片路径中\应改为/
#画图相应代码填写
img = cv2.rectangle(img,(60,40),(370,440),(0,0,255),3)
cv2.imshow('Original',img)
cv2.waitKey(0)
圆形

我们知道圆形由半径和圆心确定
函数:cv2.circle(img,(x,y),半径,(B,G,R),画笔粗细)

import cv2
img = cv2.imread(r'图片路径')#注意图片路径中\应改为/
#画图相应代码填写
img = cv2.circle(img,(215,145),100,(255,0,0),2)
cv2.imshow('Original',img)
cv2.waitKey(0)
写文字

函数:cv2.putText(图像矩阵,文字,(x,y), 字体, 字号,(B,G,R),画笔粗细)

import cv2
img = cv2.imread(r'图片路径')#注意图片路径中\应改为/
#画图相应代码填写
img = cv2.putText(img,"How are you?",(100,350),cv2.FONT_HERSHEY_COMPLEX, 2,(50,128,0),2)
cv2.imshow('Original',img)
cv2.waitKey(0)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值