【图像处理】——opencv常用函数

    技术2022-07-17  71

    目录

    读取图像

    注意:

    1、imread和plt.show以及pil.image,show的区别:

    2、imread中的rgb的顺序

    显示图像

    等待键盘输入

    销毁窗口

    保存一张图像

    图像复制

    图像颜色空间转换(灰彩互转)

    图像缩放

    图像旋转

    图像放射变换

    图像添加文字

    在图像上绘制矩形

    图像的四值属性


     


    读取图像

    cv2.imread(filepath,flags)     #读入一张图像,这里读入得到的是一个三维矩阵(h,w,α),h和w表示的是图片的大小(像素格式),α表示的是颜色通道,彩色为3,黑白为1,一般黑白图片就没有这一维,矩阵的元素值是每一个像素点的RBG值

        filepath:要读入图片的完整路径     flags:读入图片的标志         cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道         cv2.IMREAD_GRAYSCALE:读入灰度图片         cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道

    注意:

    1、imread和plt.show以及pil.image,show的区别:

    都是通过读取以下图片得到的结果

    imread:是以像素格式进行读取的,通过imshow呈现的是通过像素格子按照一比一的比例在电脑上呈现出来的,若图片的像素很大,甚至大于电脑屏幕的时候,图片就会溢出屏幕,即看不到图片的全貌

    plt.show():是以线面的形式出现的,颜色会失真

    image.show():是以图片的形式呈现的

    2、imread中的rgb的顺序

    平常我们说的顺序是rgb,但是在imread中的存储顺序是bgr

    img = cv2.imread(inputimagepath) print("img.shape")#(200,200,3) print(img[:,:,0])#b print(img[:,:,1])#g print(img[:,:,2])#r

     

    (200, 200, 3) width:200 height:200 [[[112 152 224]#bgr [114 154 226] [115 157 228] ... [120 152 218] [143 170 234] [137 163 223]] [[110 151 224] [112 154 225] [111 155 226] ... [117 147 212] [138 164 224] [147 171 229]] [[104 149 223] [105 150 223] [104 152 224] ... [ 86 112 172] [ 66 89 145] [ 64 86 138]] ... [[ 19 31 35] [ 25 37 41] [ 15 26 34] ... [ 26 43 70] [ 37 55 86] [ 41 59 90]] [[ 14 26 30] [ 24 36 40] [ 12 23 31] ... [ 40 56 85] [ 59 76 109] [ 61 80 113]] [[ 12 24 28] [ 24 36 40] [ 12 23 31] ... [ 46 64 93] [ 71 88 121] [ 72 91 126]]] 进程已结束,退出代码0

     

    显示图像

    cv2.imshow(wname,img)     #显示图像

        第一个参数是显示图像的窗口的名字     第二个参数是要显示的图像(imread读入的图像),窗口大小自动调整为图片大小

        cv2.imshow('image',img)

    等待键盘输入

        cv2.waitKey(0)   #等待键盘输入,单位为毫秒,即等待指定的毫秒数看是否有键盘输入,若在等待时间内按下任意键则返回按键的ASCII码,程序继续运行。     #若没有按下任何键,超时后返回-1。参数为0表示无限等待不调用waitKey的话,窗口会一闪而逝,看不到显示的图片

    销毁窗口

        cv2.destroyAllWindow()     #销毁所有窗口     cv2.destroyWindow(wname)   #销毁指定窗口

    保存一张图像

    cv2.imwrite(file,img,num)    #保存一张图像

        第一个参数是要保存的文件名     第二个参数是要保存的图像。可选的第三个参数,它针对特定的格式:对于JPEG,其表示的是图像的质量,用0 - 100的整数表示,默认95。     第三个参数表示的是压缩级别。默认为3.

    图像复制

    img.copy()    #图像复制

    图像颜色空间转换(灰彩互转)

    cv2.cvtColor()      #图像颜色空间转换

        img2 = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)   #灰度化:彩色图像转为灰度图像     img3 = cv2.cvtColor(img,cv2.COLOR_GRAY2RGB)   #彩色化:灰度图像转为彩色图像     # cv2.COLOR_X2Y,其中X,Y = RGB, BGR, GRAY, HSV, YCrCb, XYZ, Lab, Luv, HLS

    图像缩放

    cv2.resize(image, image2,dsize)     #图像缩放:(输入原始图像,输出新图像,图像的大小)

    图像旋转

    cv2.flip(img,flipcode)                       #图像翻转,flipcode控制翻转效果。

        flipcode = 0:沿x轴翻转;flipcode > 0:沿y轴翻转;flipcode < 0:x,y轴同时翻转

    图像放射变换

    cv2.warpAffine(img, M, (400, 600))       #图像仿射变换 :平移;裁剪、剪切、旋转、仿射变换, M、M_crop、M_shear、M_rotate

    图像添加文字

    cv2.putText(img,'text',(50,150)   #图像添加文字:(照片,添加的文字,左上角坐标,字体,字体大小,颜色,字体粗细)

        cv2.putText(image, caption, (b[0], b[1] - 10), cv2.FONT_HERSHEY_PLAIN, 1, (255, 0, 0), 1)     cv2.putText(I,'there 0 error(s):',(50,150),cv2.FONT_HERSHEY_COMPLEX,6,(0,0,255),25)

    在图像上绘制矩形

    cv2.rectangle(img, (x,y), (x+w,y+h), (0,255,0), 2)    #画出矩行:img原图、(x,y)是矩阵的左上点坐标、(x+w,y+h)是矩阵的右下点坐标、(0,255,0)是画线对应的rgb颜色、2是所画的线的宽度。

    图像的四值属性

    cv2.boundingRect(img)          #返回图像的四值属性:img是一个二值图,即是它的参数; 返回四个值,分别是x,y,w,h; x,y是矩阵左上点的坐标,w,h是矩阵的宽和高。

    Processed: 0.012, SQL: 9