配置及使用OpenCV(Python)

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

先激活Anaconda的python虚拟环境:

bash 复制代码
conda activate GGBoy

随后下载 opencv 包:

bash 复制代码
conda install opencv

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

bash 复制代码
(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 sys

if 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()

随后在虚拟环境中运行此文件:

在运行命令后要加上图像的存放路径

bash 复制代码
(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)
相关推荐
liliangcsdn几秒前
smolagents - 如何在mac用agents做简单算术题
人工智能·macos·prompt
nju_spy4 分钟前
周志华《机器学习导论》第8章 集成学习 Ensemble Learning
人工智能·随机森林·机器学习·集成学习·boosting·bagging·南京大学
心情好的小球藻24 分钟前
Python应用进阶DAY9--类型注解Type Hinting
开发语言·python
都叫我大帅哥26 分钟前
LangChain加载HTML内容全攻略:从入门到精通
python·langchain
静心问道28 分钟前
TrOCR: 基于Transformer的光学字符识别方法,使用预训练模型
人工智能·深度学习·transformer·多模态
说私域29 分钟前
基于开源AI大模型、AI智能名片与S2B2C商城小程序源码的用户价值引导与核心用户沉淀策略研究
人工智能·开源
亲持红叶31 分钟前
GLU 变种:ReGLU 、 GEGLU 、 SwiGLU
人工智能·深度学习·神经网络·激活函数
说私域31 分钟前
线上协同办公时代:以开源AI大模型等工具培养网感,拥抱职业变革
人工智能·开源
群联云防护小杜33 分钟前
深度隐匿源IP:高防+群联AI云防护防绕过实战
运维·服务器·前端·网络·人工智能·网络协议·tcp/ip
惜.己36 分钟前
使用python读取json数据,简单的处理成元组数组
开发语言·python·测试工具·json