做网站的工作记录,网站开发项目经理,网站首页版式,可以做调查问卷的网站上一小节中我们成功安装了opencv#xff0c;我们这次学习使用opencv最基础的功能#xff0c;读取和展示图片#xff0c;首先准备一张用于实验的样例图片【cat.jpg】如下#xff1a; 然后就是创建一个python项目并导入相关依赖
import cv2读取图片
读取图片使用imread方法…上一小节中我们成功安装了opencv我们这次学习使用opencv最基础的功能读取和展示图片首先准备一张用于实验的样例图片【cat.jpg】如下 然后就是创建一个python项目并导入相关依赖
import cv2读取图片
读取图片使用imread方法其函数原型如下
cv2.imread(filename, flags1)通过flags指定读取方式读取filename指定的文件返回一个 NumPy 数组其中的flags指定的图片读取方式有以下几种
cv2.IMREAD_GRAYSCALE 或 0以灰度模式读取图像。cv2.IMREAD_UNCHANGED 或 -1以原始图像格式读取包括 alpha 通道如果有。cv2.IMREAD_COLOR 或 1以 BGR 彩色模式读取图像默认。cv2.IMREAD_ANYDEPTH 或 4如果图像有更深的颜色如 16 位/像素则保留这些信息。cv2.IMREAD_ANYCOLOR 或 8尝试根据图像文件中的颜色信息读取图像。
【示例】读取【cat.jpg】图像信息注意我这里是将这张图放在了项目的根目录如果不是的话需要指定正确的路径文件名
# 读取图片
img cv2.imread(cat.jpg)我们还没有学习如何展示图片可以先看一下这个img的存储信息
print(img)之前你可能接触到图片的存储模式为RGB三维但在cv2的读取中是BGR道理是一样的只是顺序不同 展示图片
opencv中展示图片的方法主要是imshow其原型如下
cv2.imshow(winname, mat)参数说明
winname: 字符串类型指定显示图像的窗口名称。窗口名称必须是唯一的不同的图像可以使用不同的窗口名称来显示。mat: NumPy 数组表示要显示的图像数据。图像数据通常是由 cv2.imread() 或其他图像处理函数生成的。
imshow方法还需要和一些其它方法共同配合使用主要为waitkey和destroyAllWindows
cv2.waitKey(delay)delay: 整数类型指定等待的时间单位为毫秒。如果值大于0则函数会等待指定的毫秒数之后继续执行。如果值为0则函数会无限期地等待直到用户按键为止就是我们常见的按下任意键执行后续操作。
cv2.destroyAllWindows()调用 cv2.destroyAllWindows() 会关闭所有当前打开的 OpenCV 窗口。这包括通过 cv2.imshow() 创建的所有窗口。关闭窗口不仅清除了屏幕上的显示还释放了与这些窗口相关的系统资源有助于避免内存泄漏。
【示例】展示上一小节中读取的img信息
# opencv展示图片,cat指定展示窗口名字img为展示对象可以进行多个窗口的展示
cv2.imshow(cat,img)
# 等待时间0表示按任意键
cv2.waitKey(0)
# 等待之后执行的操作关闭所有展示窗口
cv2.destroyAllWindows()我们在后续的图像处理中需要经常查看图像我们可以将这三行代码集成为一个函数方便后续频繁调用
# 把上面的三行代码整合为一个函数
def cv_show(name,img):cv2.imshow(name,img)cv2.waitKey(0)cv2.destroyAllWindows()
cv_show(cat1,img)读取灰度图
imread可以在读取图片的时候指定读取图片的模式如果不指定的话默认读取BGR彩色图像我们还有一个最常用的图片模式就是灰度图还是上面的示例图用灰度模式读取并展示一次
# 灰度模式读取图片
img cv2.imread(cat.jpg,0)
cv_show(catgray,img)保存图像
我们刚刚就完成了一次简单的图像处理彩色——灰度但我们的结果只存在于内存之中保存图像使用的函数为imwight函数原型如下
cv2.imwrite(filename, img[, params])参数说明
filename: 字符串类型指定要保存的文件路径和文件名。可以是相对路径或绝对路径。img: NumPy 数组表示要保存的图像数据。params: 可选参数指定编码参数。这些参数通常是一个列表包含编码格式特定的选项。例如对于 JPEG 文件可以指定压缩质量。
【示例】保存刚刚的灰度图
# 保存这张灰度图
cv2.imwrite(catGRAY.jpg,img)