赞
踩
上一篇介绍了在WIN10上,用VS2022编写C++测试程序,调用OpenCV库加载显示图片,本篇我们接着看一下,使用Python如何调用OpenCV库接口,加载显示图片。
在编写程序之前,先要在PC上安装Python版本的OpenCV模块。
打开Windows PowerShell,使用如下命令下载安装
pip install opencv-python
安装完成截图
显示已成功安装opencv-python-4.6.0.66和numpy-1.23.2,我们来用python检测一下
import导入模块的名称为“cv2”,打印cv2版本信息,如图是4.6.0,没错。
接下来使用下边命令安装opencv-contrib-python。那么它与opencv-python有啥区别呢?opencv-python是只包含了主要模块的包,opencv-contrib-python包含了主要模块以及扩展模块,扩展模块主要是包含了一些带专利的收费算法(如shift特征检测)以及一些在测试的新的算法(稳定后会合并到主要模块)。如果您用不到扩展模块,这个也可以不安装。
pip install opencv-contrib-python
安装好了之后,就可以用创建测试项目编写程序了。
下来我们用VS2022来创建和编辑python测试程序,您也可以用其它IDE编写程序。
打开VS2022,创建新项目。
创建Python应用程序
配置项目名称和路径
创建好项目后,发现默认使用的解释器是Python 3.7,在此将其改成Python 3.10。
将以下代码,编辑输入到show_img.py文件中。
- # -*- coding: utf-8 -*-
- ###########################
- #OpenCV关键函数说明
- #
- #1 读取图像
- # cv2.imread(filename, flags=None)
- # filename:文件路径
- # flags:读取方式,有以下3种选项
- # flags可以不输入,此时默认为cv2.IMREAD_COLOR,缺省方式,读取图像为BGR 8-bit格式
- # flags设置为cv2.IMREAD_GRAYSCALE,读取图像为转换为灰度图
- # flags设置为cv2.IMREAD_UNCHANGED,图像格式不做任何改变,可用在读取带alpha通道的图片
- #
- #2 创建画布
- # cv2.namedWindow(winname, flags=None)
- # winname:窗口名称
- # flags:窗口大小控制
- # flags取值cv2.WINDOW_NORMAL(或写 0 ),窗口以固定大小显示,但可以用鼠标拖动边缘来拉伸
- # flags取值cv2.WINDOW_AUTOSIZE(或写 1,为默认值),窗口大小随图片尺寸变化而自适应变化,且不可用鼠标拖拽动态改变大小
- #
- #3 显示图像
- # 读取图像后,就将图像转为了numpy多维数组的格式
- # cv2.imshow(winname, mat)
- # winname:设置好的一张特定名称的画布窗口
- # mat:读取的numpy多维数组
- #
- #4 按键等待
- # cv2.waitKey(0)
- # 参数“0”,一直等待直到按下任意按键后,才继续后面的程序执行
- # 如果参数是正整数,则代表等待相应数值的毫秒时间后,继续执行后面的程序
- #
- ###########################
-
- import cv2
-
- def show_img(path):
- img = cv2.imread(path)
- cv2.namedWindow('img', 0)
- cv2.imshow('img', img)
- cv2.waitKey(0)
-
- if __name__ == '__main__':
- img_file = 'xiang_ri_kui.jpg'
- show_img(img_file)
-
VS中如截图
其中,xiang_ri_kui.jpg是工程当前路径下的一张jpg图片。
编辑好代码后,启动运行程序,效果如下
鼠标移到图片窗口右下角,可以用鼠标拖拽来放大和缩小图片。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。