十五天掌握OpenCV——GUI特性(图片部分)

魏老师学生——Cecil:学习OpenCV-机器视觉之旅

  • 什么是GUI?
    • 读入图像——cv2.imread( )
      • 读入:代码演示
    • 显示图像——cv2.imshow( )
      • 显示:代码演示
    • 保存图像——cv2.imwrite( )
      • 保存——代码演示
    • 总结——加载灰度图
    • 使用Matplotlib_灰度图像

什么是GUI?

GUI的全称是Graphical User Interface,即 图形用户接口。在以前的计算机显示界面中,都是消息展示,也就是说展示出来的界面不是图形化的,这样对创作者来说减轻了工作压力,但是增大了使用者理解难度。因此,为了让计算机界面更加人性化,程序员有必要学习GUI特性。

读入图像——cv2.imread( )

  1. cv2.imread(‘地址’,读取方式) ——解释:地址是图片在本地磁盘中的完整路径,要保证opencv可以顺利读取到图片。如果路径出错,opencv不会报错,但是在对图片打印或者保存等后续操作就无法进行了。读取方式决定函数如何读取图片。
  2. cv2.IMREAD_COLOR ——解释:(1)读入一张彩色图片,但是不包括图片的透明度,为默认参数。
  3. cv2.IMREAD_GRAYSCALE ——解释:(0)以灰度模式读入图片,此时图片为单通道。
  4. cv2.IMREAD_UNCHANGED ——解释:(-1)读入图片,包括图片的alpha通道。(aplha通道即阿尔法通道,用来表示图片透明度的,只有0和1来表示透明和不透明。但是一个byte占用一个0或者1;如果有多个byte存在,就可以表示更多的可能性了。)
  5. cv2.IMREAD_ANYDEPTH ——解释:(2)若载入的图像的深度为16位或者32位,就返回对应深度的图像,否则,就转换为8位图像再返回。
  6. cv2.IMREAD_ANYCOLOR ——解释:(4)

读入:代码演示

# coding=utf-8

import cv2
import numpy as np
img = cv2.imread('./images/1.jpg',0)

显示图像——cv2.imshow( )

  1. cv2.imread(‘窗口名’,图像名) ——解释:第一个参数是显示读取图像的窗口的命名,第二个参数是打算显示的图像的名字。前面带双引号,后面不带。
  2. cv2.waitKey(0) ——解释:键盘绑定函数,时间尺度毫秒级。输入0代表无限等待键盘输入。
  3. cv2.destroyAllWindows() ——解释:删除所有显示的窗口。
  4. cv2.destroyWindows(‘窗口名’) ——解释:删除指定窗口名的窗口。
  5. cv2.namedWindow(‘窗口名’) ——解释:自建窗口,可以控制窗口的大小。
  6. cv2.WINDOW_AUTOSIZE ——解释:窗口大小自动设置。
  7. cv2.WINDOW_NORMAL ——解释:控制窗口大小。 图像维度过大,或者需要添加轨迹条,调整窗口显得很有效率。

显示:代码演示

# coding=utf-8

import cv2
import numpy as np

cv2.nameWindows('image',cv2.WINDOW_NORMAL)
cv2.imread('./images/1.jpg',0)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

保存图像——cv2.imwrite( )

  1. cv2.imwrite(‘保存的文件名’,图像名) ——解释:第一个参数是保存的这个图片名字要叫什么,包括图片的格式(jpg、png),第二个参数是目前图片的名字。

保存——代码演示

# coding=utf-8

import cv2
import numpy as np

cv2.imwrite('xiaoyin.png',img)

总结——加载灰度图

# coding=utf-8

import cv2
import numpy as np

img=cv2.imread('xiaoyin.jpg',0)
cv2.imshow('img',img)
k=cv2.waitKey(0)&oxFF
if k == 27:     # wait for ECS key to exit 
	cv2.destroyAllWindows()
elif k == ord('s'):     # wait for 's' key to save and exit
	cv2.imwrite('xiaojiang.png',img)
	cv2.destroyAllWindows()

使用Matplotlib_灰度图像

  1. Matplotlib 是 Python的一个绘图库,包含各种绘图方法。
# coding=utf-8

import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('xiaoyin.img',0)
plt.imshow(img,cmap = 'gray',interpolation = 'bicubic')
plt.xticks([]),plt.yticks([])     # to hide tick values on X and Y axis
plt.show()

图像灰度效果:
十五天掌握OpenCV——GUI特性(图片部分)_第1张图片
十五天掌握OpenCV——GUI特性(图片部分)_第2张图片

彩色图像用OpenCV加载是BGR模式,而matplotlib加载是RGB模式。故用opencv加载后的彩色图像无法在matplotlib中正确显示。

你可能感兴趣的:(机器视觉,Python,OpenCV)