二.OpenCV读写图像
本文主要使用Python2.7和OpenCV进行讲解,首先调用”pip install opencv-python”安装OpenCV库,如下图所示:
1.读入图像
OpenCV读图像主要调用下面函数实现:
img = cv2.imread(文件名,[,参数])
参数(1) cv2.IMREAD_UNCHANGED (图像不可变)
参数(2) cv2.IMREAD_GRAYSCALE (灰度图像)
参数(3) cv2.IMREAD_COLOR (读入彩色图像)
参数(4) cv2.COLOR_BGR2RGB (图像通道BGR转成RGB)
2.显示图像
显示图像调用函数如下:
cv2.imshow(窗口名, 图像名)
3.窗口等待
调用函数如下:
cv2.waitKey(delay)
键盘绑定函数,共一个参数,表示等待毫秒数,将等待特定的几毫秒,看键盘是否有输入,返回值为ASCII值。如果其参数为0,则表示无限期的等待键盘输入;参数>0表示等待delay毫秒;参数<0表示等待键盘单击。
4.删除所有窗口
调用函数如下:
cv2.destroyAllWindows() 删除所有窗口
cv2.destroyWindows() 删除指定的窗口
5.写入图片
调用函数如下:
retval = cv2.imwrite(文件地址, 文件名)
下面代码是读入图片并显示保存。
# -*- coding:utf-8 -*-import cv2 #读取图片 img = cv2.imread("test.jpg") #显示图像 cv2.imshow("Demo", img) #等待显示 cv2.waitKey(0) cv2.destroyAllWindows() #写入图像 cv2.imwrite("testyxz.jpg", img)
如果代码中没有watiKey(0)函数,则运行结果如下图所示:
同时
可以对代码进行升级,如下所示:
#无限期等待输入 k=cv2.waitKey(0) #如果输入ESC退出 if k==27: cv2.destroyAllWindows()
三.OpenCV像素处理
1.读取像素
灰度图像直接返回灰度值,彩色图像则返回B、G、R三个分量。注意OpenCV读取图像是BGR存储显示,需要转换为RGB再进行图像处理。
灰度图像:返回值 = 图像(位置参数)
eg: test=img[88,42]
彩色图像:返回值 = 图像[位置元素, 0 | 1 | 2 ] 获取BGR三个通道像素
eg: blue=img[88,142,0] green=img[88,142,1] red=img[88,142,2]
2.修改图像
修改图像如果是灰度图像则直接赋值新像素即可,彩色图像依次给三个值赋值即可。
灰度图像:
img[88,142] = 255
彩色图像:
img[88,142, 0] = 255
img[88,142, 1] = 255
img[88,142, 2] = 255
彩色图像:方法二
img[88,142] = [255, 255, 255]
下面代码是获取像素及修改的操作。
# -*- coding:utf-8 -*-import cv2 #读取图片 img = cv2.imread("test.jpg", cv2.IMREAD_UNCHANGED) test = img[88,142]print test img[88,142] = [255, 255, 255]print test #分别获取BGR通道像素 blue = img[88,142,0]print blue green = img[88,142,1]print green red = img[88,142,2]print red #显示图像 cv2.imshow("Demo", img) #等待显示 cv2.waitKey(0) cv2.destroyAllWindows() #写入图像 cv2.imwrite("testyxz.jpg", img)
下面代码是将行为100到200、列150到250的像素区域设置为白色。
# -*- coding:utf-8 -*-import cv2 #读取图片 img = cv2.imread("test.jpg", cv2.IMREAD_UNCHANGED) #该区域设置为白色 img[100:200, 150:250] = [255,255,255] #显示图像 cv2.imshow("Demo", img) #等待显示 cv2.waitKey(0) cv2.destroyAllWindows() #写入图像 cv2.imwrite("testyxz.jpg", img)
运行结果如下图所示:
相关推荐:
Python编程中使用Pillow来处理图像的基础教程
Python零基础入门之八lambda的表达式和filter、map内置函数
Python基于opencv的图像压缩算法实例分析
以上就是python图像处理的基础和OpenCV的入门函数的详细内容,更多请关注Gxl网其它相关文章!
查看更多关于python图像处理的基础和OpenCV的入门函数的详细内容...