- 图片基本操作函数
- imread函数
- imwrite函数
- 通道转换(BGR转RGB)代码:
- 处理结果
首先,我们要处理的图片为猫咪如下图所示:
读取图片
import cv2 img = cv2.imread(“cat.jpg”) print(img)
其输出为
[[[136 186 228] [136 186 228] [136 186 228] ... [122 158 188] [122 158 188] [122 158 188]] [[136 186 228] [136 186 228] [136 186 228] ... [122 158 188] [122 158 188] [122 158 188]] [[136 186 228] [136 186 228] [136 186 228] ... [121 157 187] [121 157 187] [121 157 187]] ... [[ 91 132 205] [ 91 132 205] [ 91 132 205] ... [ 90 123 196] [ 89 122 195] [ 88 121 194]] [[ 91 132 205] [ 91 132 205] [ 91 132 205] ... [ 90 123 196] [ 89 122 195] [ 88 121 194]] [[ 91 132 205] [ 91 132 205] [ 91 132 205] ... [ 90 123 196] [ 89 122 195] [ 88 121 194]]]imread函数
imread( )功能就是载入一张图片.
imread函数有两个参数,第一个参数是图片路径,第二个参数表示读取图片的形式,有三种:
- cv2.IMREAD_COLOR:加载彩色图片,这个是默认参数,可以直接写1.
- cv2.IMREAD_GRAYSCALE:以灰度模式加载图片,可以直接写0.
- cv2.IMREAD_UNCHANGED:包括alpha,可以直接写-1.
该函数经常配合imshow( )函数一起使用,imshow()函数功能就是把你刚才载入的图片显示出来.
imread在不加第二个参数的情况下默认将图片转换成了一个三维数组,最里面的一维代表的是一个像素的三个通道的灰度值,第二个维度代表的是第一行所有像素的灰度值,第三个维度,也就是最外面的一个维度代表的是这一张图片.
img = cv2.imread("../cat.jpg")
cv2.imshow("cat", img)
cv2.imread()的系数是按照BGR顺序排列的
其中的变量R表示的是仅有原图像红通道的cat.jpg
import cv2
img = cv2.imread("cat.jpg")
red = img[:,:,2].copy()
imwrite函数
还有一个常用的函数为imwrite().
使用函数cv2.imwrite(file,img,num)保存一个图像.
第一个参数是要保存的文件名,第二个参数是要保存的图像.
可选的第三个参数,它针对特定的格式:对于JPEG,其表示的是图像的质量,用0 - 100的整数表示,默认95;对于png ,第三个参数表示的是压缩级别.默认为3.
cv2.imwrite("out.jpg", img)
通道转换(BGR转RGB)代码:
import cv2
# function: BGR -> RGB
def BGR2RGB(img):
b = img[:, :, 0].copy()
g = img[:, :, 1].copy()
r = img[:, :, 2].copy()
# RGB > BGR
img[:, :, 0] = r
img[:, :, 1] = g
img[:, :, 2] = b
return img
# Read image
img = cv2.imread("../cat.jpg")
# BGR -> RGB
img = BGR2RGB(img)
# Save result
cv2.imwrite("out.jpg", img)
cv2.imshow("result", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
处理结果
进行处理之后的图片如下图所示:



