openCV入门 Gui特性 1 图片操作

引用

import numpy as np
import cv2
import matplotlib.pyplot as plot

基础函数

cv2.imread()   #读入图像
cv2.imshow()   #显示图像
cv2.imwrite()   #保存图像
k = cv2.waitKey(0)   #等待键盘输入,k为输入的ASCII码值
cv2.destoryAllWindows()   #删除所有窗口

读入图像

img = cv2.imread('meinv.jpg',0)   # 0 默认灰色
img = cv2.imread('meinv.jpg',1)   #彩色
img = cv2.imread('meinv.jpg',-1)   #彩色
img = cv2.imread('meinv.jpg',IMREAD_GRAYSCALE)   #灰色
img = cv2.imread('meinv.jpg',IMREAD_COLOR)   #彩色
###  meinv:图像的名字    第二个参数:应该如何读取这幅图片

显示图像

cv2.imshow('imag',img)   #imag:窗口的名字
k = cv2.waitKey(0)&0XFF   #等待键盘输入,k为输入的ASCII码值,&0XFF:64位系统需要,32位系统不需要
cv2.destoryAllWindows()   #删除所有窗口
cv2.destoryWindow('imag')   #删除特定窗口

保存图像

cv2.imwrte('messigary.png',img)   #'messigary.png':保存路径

窗口大小调整 cv2.namedWindow()函数

cv2.namedWindow('image',cv2.WINDOW_NORMAL)   #可调整窗口大小
cv2.imshow('imag',img)

代码:
加载一个灰度图,显示图片,按下’s’键保存后退出,或者 按下 ESC 键退出不保存。

import numpy as np
import cv2
img = cv2.imread('meinv.jpg',0)   # 灰色  图像格式(.jpg)不能漏
   #img = cv2.imread('meinv.jpg',1) 彩色
cv2.imshow('imag',img)
k=cv2.waitKey(0)&0XFF   #等待键盘输入,k为输入的ASCII码值
if k == 27:   #ESC的ASCII值为27
	cv2.destoryAllWindows()
elif k == ord('s'):   #ord()函数:该函数是以单个字符作为参数,返回对应的ASCll数值或者Unicode值
   #注意:ord函数的参数是单个字符,并非多个,则会引发一个TypeError的异常!!
	cv2.imwrite('meinv.png',img)
	cv2.destoryAllWindows()

效果图
img = cv2.imread('meinv.jpg',0)
img = cv2.imread('meinv.jpg',1)

简单使用Matplotlib

import numpy as np
import cv2
from matplotlib import pyplot as plt
img = cv2.imread('meinv.jpg',0)
plt.imshow(img, cmap = 'gray',interpolation = 'bicubic')
   #cmap:Colormap, 可选  interpolation: string, 可选,差值方式
plt.xticks([]),plt.yticks([])   #隐藏X轴和Y轴上的记号值
plt.show()

Matplotlib显示彩色图像

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

img = cv2.imread('messi4.jpg')
b,g,r = cv2.split(img)   #split:分裂
img2 = cv2.merge([r,g,b])   #merge:合并
plt.subplot(121);plt.imshow(img) # expects distorted color期望颜色失真
   #plt.subplot()函数:https://blog.csdn.net/qq_41664688/article/details/104915501
plt.subplot(122);plt.imshow(img2) # expect true color期待本色
plt.show()

cv2.imshow('bgr image',img) # expects true color期待本色
cv2.imshow('rgb image',img2) # expects distorted color期望颜色失真
cv2.waitKey(0)
cv2.destroyAllWindows()

注意:彩色图像使用openCV加载时是BGR模式。但是Matplotlib是RGB模式。所有彩色图像如果已经被OpenCV读取,那它将不会被Matplotib正确显示

BGR:BGR颜色的表示一般用16进制表示,所说的RGB是三原色 即 红色(Red)、
绿色(Green)、蓝色(Blue),每种颜色用两位16进制表示,即从00到FF,
那么RGB三种颜色就要用六位16进制表示,即从000000到 FFFFFF,
从左到右每两位分开分别代表红绿蓝,所以ff0000是纯红色,     
00ff00是纯绿色,0000ff是纯蓝色,000000是黑色,FFFFFF是白色
RBG:(0,0,255)蓝色
    (0,255,0)绿色等

Matplotib中imshow方法
#https://my.oschina.net/u/2474629/blog/1800096

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@bwang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值