Open CV默认图片通道顺序是BGR,而不是RGB。
import cv2 as cv
实现功能:
从文件夹中读取一张图片
代码示例:
# eg:
img = cv.imread(r'../CV-images/birds.jpg', -1)
cv.imshow('img_1', img)
cv.waitKey(0)
cv.destroyAllWindows()
imread(img_path,flag) 读取图片,返回图片对象
imshow(window_name,img):显示图片,窗口自适应图片大小
waitKey(millseconds) 键盘绑定事件,阻塞监听键盘按键,返回一个数字(不同按键对应的数字不同)
destroyAllWindows(window_name)
实现功能:
将一个彩色图像转换为灰度图像 并保存到文件夹中
代码示例:
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 对单通道数组应用固定阈值操作。
cv.imwrite(img_path_name,img)
图像写入函数
实现功能:
获取,编辑图片中某一位置像素
代码示例:
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
实现功能:
获取图片中某一位置像素
代码示例
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
实现功能
实现图像截取,复制
代码示例:
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()