配置及使用OpenCV(Python)

  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显示图像:

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将图片数字化:

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])

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

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.hqwc.cn/news/661714.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言字符串(0基础到深入剖析)---字符串系列合集(函数+指针+数组)

前言 本篇旨在帮助不了解字符串或者逻辑梳理不够透彻的伙伴们理出一条脉络。选择能看懂的部分即可,建议收藏,后期学习完C语言方便回顾。 适用范围:0基础C语言(刚学字符串)- 学过函数 - 学过指针 ---大致了解了数据内…

Linux 第十七章

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

SQLite Expert安装与注册

SQLite Expert安装与注册 下载安装 下载安装 下载对应的位数的SQLite Expert:http://www.sqliteexpert.com/download.html ,建议下载professional版本的,功能更加强大。 如果官网进不去可以到百度云下载: https://pan.baidu.com…

【UnityRPG游戏制作】Unity_RPG项目之场景环境搭建和解析

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

MATLAB - 机器人动力学 - 质心(Center of Mass)

系列文章目录 前言 一、用法 com centerOfMass(robot) com centerOfMass(robot,configuration) [com,comJac] centerOfMass(robot,configuration) 二、说明 com centerOfMass(robot) 计算机器人模型在原点构型处相对于基础坐标系的质心位置。com centerOfMass(robot,conf…

Linux进程的概念

前言 上一期我们介绍了冯诺依曼体系结构以及重谈了操作系统,为进入系统的学习铺好了路!本期开始我们正式的开始学习Linux的系统部分! 本期内容介绍 什么是进程? 进程的理解 如何使用系统调用查看pid? 终止进程的两种方式 进程创…

Mybatis进阶(动态SQL)

文章目录 1.动态SQL1.基本介绍1.为什么需要动态SQL2.基本说明3.动态SQL常用标签 2.环境搭建1.新建子模块2.删除不必要的两个文件夹3.创建基本结构4.父模块的pom.xml5.jdbc.properties6.mybatis-config.xml7.MyBatisUtils.java8.MonsterMapper.java9.MonsterMapper.xml10.测试Mo…

【数据结构与算法】力扣 239. 滑动窗口最大值

题干描述 给你一个整数数组 nums,有一个大小为 k **的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 输入: nums [1,3,-1,-3,5,3…

C++ 多态详解

文章目录 1. 多态的概念2. 多态的定义及实现2.1 多态的构成条件2.2 虚函数2.3 虚函数的重写2.3.1 虚函数重写的两个例外 2.4 C11 override 和 final2.5 重载、覆盖(重写)、隐藏(重定义)的对比 3. 多态的原理3.1 虚函数表3.2多态的原理 4. 单继承和多继承关系的虚函数表4.1 单继…

OBSERVER(观察者)-- 对象行为模式

意图: 定义对象间地一种一对多地依赖关系,当一个对象地状态发生改变时,所有对于依赖于它的对象都得到通知并被自动更新。 别名: 依赖(Dependents), 发布-订阅(Publish-Subsribe) 动机: 将一个系统分割成一系列相互协…

【webrtc】MessageHandler 9: 基于线程的消息处理:执行Port销毁自己

Port::Port 构造的时候,就触发了一个异步操作,但是这个操作是要在 thread 里执行的,因此要通过post 消息 MSG_DESTROY_IF_DEAD 到thread跑:port的创建并米有要求在thread中 但是port的析构却在thread里 这是为啥呢?

C++--const成员及const取地址操作符重载

前言 今天我们来了解一下const成员的基本使用,以及const取地址重载的运用 来开始今天的学习 const成员 1.基本定义, 将const修饰的“成员函数”称之为const成员函数,const修饰类成员函数,实际修饰该成员函数 隐含的*this指针,表明在该成员函…