配置及使用OpenCV(Python)

news/2024/10/18 0:23:06/

  python配置OpenCV相对于c++的配置方法容易的多,但建议在Anaconda中的Python虚拟环境中使用,这样更方便进行包管理和环境管理:

先激活Anaconda的python虚拟环境:

conda activate GGBoy

随后下载 opencv 包:

conda install opencv

下载完成后在python终端导入 cv2 测试下是否下载成功

(GGBoy) C:\Users\114514>python
Python 3.6.13 |Anaconda, Inc.| (default, Mar 16 2021, 11:37:27) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>>

使用Opencv显示图像:

python">import cv2
import sysif len(sys.argv) > 1:  image = cv2.imread(sys.argv[1], cv2.IMREAD_UNCHANGED)  if image is None:  print(f"未能读取图像文件: {sys.argv[1]}")  sys.exit(1)  
else:  print("请提供图像文件路径作为命令行参数。")  sys.exit(1)  cv2.imshow("image", image)  
cv2.waitKey(0)  
cv2.destroyAllWindows()

随后在虚拟环境中运行此文件:
在运行命令后要加上图像的存放路径

(GGBoy) C:\Users\114514>cd C:\Users\114514\Desktop(GGBoy) C:\Users\114514\Desktop>python cv36.py C:\Users\114514\Desktop\GGBoy.jpg

显示图像

使用Opencv将图片数字化:

python">import cv2  
import numpy as np  image_path = 'C:\\Users\\114514\\Desktop\\GGBoy.jpg' 
image = cv2.imread(image_path)  if image is None:  print(f"无法读取图片: {image_path}")  
else:   print(f"图片形状: {image.shape}")  print(f"图片数据类型: {image.dtype}")  # 通过numpy数组来访问和操作这些数字化数据  digitized_image = np.array(image)  # 打印数字化矩阵的一部分(左上角的10x10像素)  print(digitized_image[:10, :10])

彩色图片转换为灰度图片:

python">import cv2  image_path = 'C:\\Users\\114514\\Desktop\\ggboy.jpg'
color_image = cv2.imread(image_path)  if color_image is None:  print(f"未能读取图片: {image_path}")  
else:  gray_image = cv2.cvtColor(color_image, cv2.COLOR_BGR2GRAY)  cv2.imshow('GGBoy Image', gray_image)  cv2.waitKey(0)  cv2.destroyAllWindows()  gray_image_path = 'C:\\Users\\114514\\Desktop\\ggboy2.jpg'  cv2.imwrite(gray_image_path, gray_image)


http://www.ppmy.cn/news/1448481.html

相关文章

【二叉树——数据结构】

文章目录 1.二叉树1.基本概念.几种特殊的二叉树 2.考点3.二叉树的存储结构4.二叉树的遍历5.线索二叉树 1.二叉树 1.基本概念. 二叉树是n(n>0)个结点的有限集合 或者为空二叉树,即n0 或者由一个根结点和两个互不相交的被称作根的左子树和右子树组成。 每个结点至…

CSS中不固定大小的图片怎样做到在所在的块元素里垂直居中

对于不固定大小的图片,在块元素中实现垂直居中可以有多种方法。以下是一些常用的方法: 使用Flexbox(弹性盒子): Flexbox 是一个非常强大的布局工具,可以轻松实现元素的垂直居中。你只需要将块元素设置为 flex 容器&a…

Go Web 开发基础【用户登录、注册、验证】

前言 这篇文章主要是学习怎么用 Go 语言(Gin)开发Web程序,前端太弱了,得好好补补课,完了再来更新。 1、环境准备 新建项目,生成 go.mod 文件: 出现报错:go: modules disabled by G…

网盘—下载文件

本文主要讲解网盘文件操作的下载文件部分,具体步骤如下: 目录 1、实施步骤 2、代码实现 2.1、添加下载文件的协议 2.2、添加下载文件函数 2.3、添加信号槽 2.4、实现槽函数 2.5、设置download状态 2.6、添加定义 2.7、服务器接收数据 2.8、添…

C语言中的指针常量和常量指针

指针常量和常量指针是C/C编程语言中两个重要的概念,它们都与指针有关,但具有不同的含义和用途。 1. 指针常量(Pointer to Constant) 指针常量指的是一个指针的值(即它所指向的地址)在初始化之后不能再被改…

vue 组件组件通信方法

1、父组件props传值给子组件。 子组件中定义props字段,类型为Array(如需限制字段值类型,也可以定义为Object的形式)。如下例子,父组件挂载子组件helloWorld,在组件标签上给title赋值,子组件hel…

【项目纪实】某国有航空公司人力资源系统诊断咨询项目

公司的人力资源管理问题一直都比较严重,比如人员冗余、员工工作积极性差等问题,虽然经过多次的管理尝试,存在的问题仍然没有缓解。华恒智信人力资源咨询公司的老师特别专业,帮我们系统、全面的诊断了人力资源管理上存在的问题&…

LabVIEW智能变电站监控系统设计与实现

LabVIEW智能变电站监控系统设计与实现 随着电力系统和智能化技术的快速发展,建立一个高效、可靠的变电站监控系统显得尤为重要。通过分析变电站监控系统的需求,设计了一个基于LabVIEW软件的监控平台。该平台利用虚拟仪器技术、传感器技术和无线传输技术…