opencv 常用的三个函数imread,imshow,imwrite

opencv 这三个函数从字面意思上就可以看出,读取图像,显示图像,保存图像.读取图像返回是一个多维数组.因此出来图像时就可以使用它多维数组数据进行处理了.

看个简单例子:

import numpy as np
import cv2
img = cv2.imread('D:/img/test/000.jpg',  cv2.IMREAD_UNCHANGED)
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image', img)
key = cv2.waitKey(0)
if key == ord('s'):    
    cv2.imwrite('D:/img/test/0005.jpg', img)
else:    
    cv2.destroyWindow('image')




    读入图像



    img = cv2.imread('D:/img/test/000.jpg') 打开原图。


    img = cv2.imread('D:/img/test/000.jpg', cv2.IMREAD_GRAYSCALE)  以灰度模式读入图像。


    img = cv2.imread('D:/img/test/000.jpg', cv2.IMREAD_COLOR) 读入彩色图像,图像的透明度会忽略。


    img = cv2.imread('D:/img/test/000.jpg', cv2.IMREAD_UNCHANGED) 读入原图。




    读入图像的返回值





    print type(img)结果为<type 'numpy.ndarray'>,可见是个多维数组。

    opencv不会提示你图片的路径是否错误,若print img结果为None,则表明图像路径是错的。若结果是一个矩阵数组,则表明路径正确。




    显示图像





    cv2.imshow('image', img) 在窗口显示图像,图像的名字是image,img参数是我要显示的图像,可以同时打开多个图像显示窗口,但他们的名字必须是不同的。

    这个时候的图像大小默认是原始图像的大小,若想窗口大小可调节,使用cv2.namedWindow()即可。


    cv2.namedWindow('image', cv2.WINDOW_NORMAL) image窗口的大小可以调节。


    cv2.namedWindow('image', cv2.WINDOW_AUTOSIZE) 默认的窗口大小,若第二个参数不填写,默认的就是图像大小且不可调节。

    键盘绑定函数,cv2.waitKey(0),设置参数是0,表示无限期等待键盘输入,若为其他值,表示在该值得毫秒时间内等待键盘输入,若没有输入,则返回-1,若有输入,则返回输入键的ASCII值。




    保存图像





    cv2.imwrite('D:/img/test/0002.jpg', img)第一个参数是保存的图像的路径,第二个参数是要保存的图像。




    删除已建立的窗口





    cv2.destroyAllWindows()销毁所有窗口。


    cv2.destroyWindow('image')销毁特定窗口,参数是你要销毁的窗口名称。




    其他



ord()和chr()函数:

ord()函数的参数是一个ASCII字符,返回值是对应的十进制整数,也就是ASCII的值。

chr()函数的参数是0 - 256 的一个整数,返回值是当前整数对应的ASCII字符。

阿卡罗

阿卡罗软件工程师