(一) Open CV 图像基础操作 --- Python实现

(一) Open CV 图像基础操作 — Python实现

Open CV默认图片通道顺序是BGR,而不是RGB。

1 引入 CV

import cv2 as cv

1.1 图像 读取

实现功能:
从文件夹中读取一张图片
代码示例:

# eg:
img = cv.imread(r'../CV-images/birds.jpg', -1)
cv.imshow('img_1', img)
cv.waitKey(0)
cv.destroyAllWindows()

代码效果
0PiXHx.png
代码解析:

imread(img_path,flag) 读取图片,返回图片对象

  • img_path: 图片的路径,即使路径错误也不会报错,但打印返回的图片对象为None
  • flag:cv2.IMREAD_COLOR,读取彩色图片,图片透明性会被忽略,为默认参数,也可以传入 1,cv2.IMREAD_GRAYSCALE,按灰度模式读取图像,也可以传入 0,cv2.IMREAD_UNCHANGED,读取图像,包括其alpha通道,也可以传入 -1

imshow(window_name,img):显示图片,窗口自适应图片大小

  • window_name: 指定窗口的名字
  • img:显示的图片对象

waitKey(millseconds) 键盘绑定事件,阻塞监听键盘按键,返回一个数字(不同按键对应的数字不同)

  • millseconds: 传入时间毫秒数,在该时间内等待键盘事件;传入0时,会一直等待键盘事件

destroyAllWindows(window_name)

  • window_name: 需要关闭的窗口名字,不传入时关闭所有窗口

1.2 图像写入

实现功能:
将一个彩色图像转换为灰度图像 并保存到文件夹中
代码示例:

img1 = cv.imread(r'../CV-images/birds.jpg')
# 图像灰度转换 将彩色图像(三通道 BGR)转化为灰度图像(单通道图像)
img_gray = cv.cvtColor(img1, cv.COLOR_BGR2GRAY)
# 图像降噪处理
ret, img_threshold = cv.threshold(img_gray, 127, 255, cv.THRESH_BINARY)
# 显示原始图片
cv.imshow('img1', img1)
# 显示 转换后的图片
cv.imshow('thre', img_threshold)

#等待 键盘输入
key = cv.waitKey(0) 
# Esc键  key = 27
if key == 27:
    print(key)
    cv.destroyAllWindows()
# 图像写入
cv.imwrite(r'./images/thre.jpg', img_threshold)

代码效果:
在这里插入图片描述

代码解析:

cv.cvtColor(img1, cv.COLOR_BGR2GRAY)

图像颜色空间转换:BGR —> Gray 彩色到灰色(黑白) ,Gray—> BGR 灰度(黑白)—>彩色
在 OpenCV 中有超过 150 种进行颜色空间转换的方法。但是我们经常用到的也就两种: BGR<–>Gray 和 BGR<–>HSV。要用到的函数是: cv2.cvtColor(input_image,flag),其中 flag就是转换类型。
对于 BGR->Gray 的转换,我们要使用的 flag 就是 cv2.COLOR_BGR2GRAY。
同样对于 BGR->HSV 的转换,我们用的 flag 就是 cv2.COLOR_BGR2HSV。

cv.threshold(img, threshold, maxval,type)

函数 cv.threshold 对单通道数组应用固定阈值操作。

  • img 指输入图像
  • threshold是设定的阈值
  • maxval是当灰度值大于(或小于)阈值时将该灰度值赋成的值
  • type规定的是当前二值化的方式
    这里有一篇博客关于thresholdhan函数二值化处理写的非常详细大家可以点击了解一下 >>threshold 函数详细用法

cv.imwrite(img_path_name,img)

图像写入函数

  • i mg_path_name:文件写入路径
  • img:文件对象

1.3 图像像素获取和编辑

实现功能:
获取,编辑图片中某一位置像素
代码示例:

img = cv.imread(r'../CV-images/birds.jpg')

# 获取和设置
pixel = img[100,100] # 获取(100,100)处的像素值 彩色图像为RGB  三层叠加 所以有三个像素值
print(pixel)
img[100,100] = [57,63,99]
b = img[100,100,0]
g = img[100,100,1]
r = img[100,100,2]
img[100,100,2] = 99 # 设置R通道值
print(b,g,r)

# 利用函数获取和设置
pixel = img.item(100,100,2)
img.itemset((100,100,2),98)
print(pixel)
print(img[100,100,2])

代码效果:

out:
[242 236 193]
57 63 99
99
98

1.4获取图像格式

实现功能:
获取图片中某一位置像素
代码示例

import cv2 as cv

img = cv.imread(r'../CV-images/birds.jpg')
# 图片形状
print(img.shape)
# 图片大小
print(img.size)
# 图片格式
print(img.dtype)

代码效果

out:
(450, 600, 3)
810000
uint8

1.5 ROI截取

实现功能
实现图像截取,复制
代码示例:

import cv2 as cv
img = cv.imread(r'../CV-images/birds.jpg',-1)

part = img[200:450,0:200]
img[0:250,0:200] = part

cv.imshow('image',img)
cv.waitKey(0)
cv.destroyAllWindows()

代码效果
在这里插入图片描述


文中图片资源下载:右键点击 另存为
在这里插入图片描述

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python open-cv是一个流行的计算机视觉库,可以用于图像处理和计算机视觉任务。安装open-cv包可以让我们使用该库,并在我们的项目中实现高级计算机视觉处理。 安装Python open-cv包的步骤如下: 1. 安装Python:首先需要安装Python解释器并配置环境变量。Python安装包可以从Python官网下载并安装。 2. 安装pip:pip是Python的包管理器,可以用于安装Python的第三方库。在Python安装完毕后,pip一般会自动安装。可以通过输入pip -V命令来检查pip是否安装成功。 3. 安装numpy包:在安装Python open-cv之前,需要先安装numpy包。numpy是Python数值计算库,用于处理多维数组和矩阵。可以使用pip install numpy来安装该包。 4. 下载Python open-cv安装包:可以从open-cv官网下载安装包。选择适合自己系统版本的安装包进行下载。 5. 安装open-cv包:将下载的open-cv安装包解压后,通过命令行进入解压后的文件夹,使用pip install命令进行安装。例如:pip install opencv_python-4.5.3-cp38-cp38-win_amd64.whl。 6. 验证安装:在安装open-cv包后,可以通过在Python解释器环境中运行import cv2命令来验证安装是否成功。如果没有报错,说明open-cv安装成功。 总之,安装Python open-cv包需要先安装Python解释器和pip包管理器,然后安装numpy包,再下载open-cv安装包并进行安装。安装成功后,就可以使用open-cv库进行图像处理和计算机视觉任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值