Win10+Python3.10+OpenCV4.6.0加载显示图片

发布于:2023-01-04 ⋅ 阅读:(443) ⋅ 点赞:(0)

1 前言

上一篇介绍了在WIN10上,用VS2022编写C++测试程序,调用OpenCV库加载显示图片,本篇我们接着看一下,使用Python如何调用OpenCV库接口,加载显示图片。

2 模块安装

在编写程序之前,先要在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

在这里插入图片描述

 安装好了之后,就可以用创建测试项目编写程序了。

3 创建配置项目

下来我们用VS2022来创建和编辑python测试程序,您也可以用其它IDE编写程序。

打开VS2022,创建新项目。
在这里插入图片描述
创建Python应用程序
在这里插入图片描述
配置项目名称和路径
在这里插入图片描述
创建好项目后,发现默认使用的解释器是Python 3.7,在此将其改成Python 3.10。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4 编写程序

将以下代码,编辑输入到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图片。
在这里插入图片描述
编辑好代码后,启动运行程序,效果如下
在这里插入图片描述
鼠标移到图片窗口右下角,可以用鼠标拖拽来放大和缩小图片。


网站公告

今日签到

点亮在社区的每一天
去签到