最新版opencv4.9安装介绍,基本图像处理详解

简介: 最新版opencv4.9安装介绍,基本图像处理详解

一、什么是OpenCV ?

OpenCV的全称是:Open Source Computer Vision Library

OpenCV是Intel开源计算机视觉库。它由一系列 C 函数和少量 C++ 类构成,,可以运行在Linux、Windows、Android和Mac OS操作系统上。实现了图像处理和计算机视觉方面的很多通用算法。

优点:

1、 OpenCV 对非商业应用和商业应用都是免费的;

2、 开源的;

3、 可以应用于工程实践中;

缺点:

相对于Matlab而言,OpenCV基于C语言开发,编程复杂,开发周期较长。

可以看出,OpenCV的优缺点正好与Matlab的优缺点相反,两者各有所长,根据不同的要求选择不同的编程环境。

应用领域:

1、人机互动 2、物体识别 3、图象分割 4、人脸识别 5、动作识别 6、运动跟踪 7、机器人 8、运动分析 9、机器视觉 10、结构分析 11、汽车安全驾驶

为什么有OpenCV?

计算机视觉市场巨大而且持续增长,且这方面没有标准API,目前的计算机视觉软件大概有以下三种:

 1.研究代码(慢,不稳定,独立并与其他库不兼容)

 2.耗费很高的商业化工具(比如Halcon, MATLAB+Simulink)

 3.依赖硬件的一些特别的解决方案(比如视频监控,制造控制系统,医疗设备)

这是目前的现状。而标准的API将简化计算机视觉程序和解决方案的开发。OpenCV致力于成为这样的标准API。

二. OpenCV 安装

1. 下载地址

https://opencv.org/releases/

最新版目前是4.9.0 感兴趣的可以看下源码source

官方文档:https://docs.opencv.org/4.x/d9/df8/tutorial_root.html

2.安装命令

pip install opencv-python

检查下opencv是否安装成功,进入python环境,导入cv2,如果不报错就是安装成功

import cv2

查看opencv版本

print(cv2.__version__)

三、图像基础

1. 基本概念

(1)像素:计算机屏幕上所能显示的最小单位。用来表示图像的单位。

(2)RGB,R : Red,G : Green,B : Blue,每个的范围是0~255。


一张图片是由无数个像素组成的

2. 坐标系

这个logo像素是:18 X 20 = 360 pixels

坐标系的原点(0,0)在左上角,每一个点的坐标是:

(height, width, channel)。

channel就是颜色数量,比如RGB,channel就是3

3. 基本操作(彩色图片)

(1)读取图片

cv2.imread( )

我们先看看图片的样子

image = cv2.imread('image/123.png')   #注意,图片名称不能带中文。不然读取不到
image

得到的是个数组

#如果向要读取中文路径或中文文件名,需要转换下
#定义包含中文字符的图片路径
image_path = r"F:\virtualenvdata\ai\Scripts\pythonitems\myopencv\image\灰度.jpg"
 
#读取带有中文路径的图片
import numpy as np 
image = cv2.imdecode(np.fromfile(image_path, dtype=np.uint8), -1)

#imdecode读取的是rgb,如果后续需要opencv处理的话,需要转换成bgr,转换后图片颜色会变化
image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
image.shape

查看这张图片的RGB分别是多少呢?

#查看图片的RGB

#在opencv中,图片的排序是BGR

#查看图片中某个点的三原色数值

b,g,r = image[40,20]

如果只想取出三原色中的一种,可以根据下标获取

#取出三原色中的某一种色的数值,根据下标获取

b = image[40,20,0]
b

可以看到跟同时取是一致的

#重新给像素赋值,更换颜色

image[40,20] = (0,0,255)

可以看到赋值成功

(2)获取图片的形状

img.shape
 

返回一个 (rows, heights, channels)

(3)获取图片的大小

img.size
 

返回一个rowsheightschannels

(4)显示图片

cv2.imshow( )

(5)等待

cv2.waitKey(0)
 

(6)关闭

cv2.destroyAllWindows()

图像显示完之后,要记得关闭,不然一直占用内存

cv2.imshow(‘image’,image)

#记得显示的时候,一定要等一下,不然会一闪而过

cv2.waitKey(0) 0 为参数,单位毫秒,表示间隔时间

waitKey(int delay)键盘绑定函数,共一个参数,表示等待毫秒数,将等待特定的几毫秒,看键盘是否有输入,

如果delay大于0,那么超过delayms后,如果没有按键,那么会返回-1,

如果按键那么会返回键盘值,返回值为ASCII值。

如果其参数为0,则表示无限期的等待键盘输入。

#关闭所有窗口
cv2.destroyAllWindows()

显示的很大,而且不能缩小

4. 基本操作(灰度图片)

(1)读取图片

cv2.imread( img, cv2.IMREAD_GRAYSCALE )   #灰度读取,一定要加上 cv2.IMREAD_GRAYSCALE 这个参数

先看下图片

#读取灰度图片

image = cv2.imread('image/huidu.jpg',cv2.IMREAD_GRAYSCALE)
image

(2)获取图片的形状:img.shape,返回一个(rows, heights)

image.shape

(3)展示灰度图片

#显示灰度图片

cv2.imshow("hui",image)
cv2.waitKey(0)
cv2.destroyAllWindows()

5. BGR 顺序

每个像素点由BGR三种颜色组成

#BGR顺序
img_logo = cv2.imread('image/logo.png')
#获取整张图片的BGR
b,g,r = cv2.split(img_logo)

#生成新图片
image_new = cv2.merge([r,g,b])
image_new

#展示
import matplotlib.pyplot as plt
plt.subplot(121)
plt.imshow(img_logo)
plt.subplot(122)
plt.imshow(image_new)
plt.show()

使用opencv展示

cv2.imshow('bgr_image',img_logo)
cv2.imshow('rgb_image',image_new)
cv2.waitKey(0)
cv2.destroyAllWindows()



相关文章
|
2月前
|
算法 计算机视觉
基于qt的opencv实时图像处理框架FastCvLearn实战
本文介绍了一个基于Qt的OpenCV实时图像处理框架FastCvLearn,通过手撕代码的方式详细讲解了如何实现实时人脸马赛克等功能,并提供了结果展示和基础知识回顾。
101 7
基于qt的opencv实时图像处理框架FastCvLearn实战
|
1月前
|
并行计算 PyTorch TensorFlow
Ubuntu安装笔记(一):安装显卡驱动、cuda/cudnn、Anaconda、Pytorch、Tensorflow、Opencv、Visdom、FFMPEG、卸载一些不必要的预装软件
这篇文章是关于如何在Ubuntu操作系统上安装显卡驱动、CUDA、CUDNN、Anaconda、PyTorch、TensorFlow、OpenCV、FFMPEG以及卸载不必要的预装软件的详细指南。
3126 3
|
1月前
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
136 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
|
1月前
|
Ubuntu Linux C语言
Ubuntu安装笔记(二):ubuntu18.04编译安装opencv 3.4.0 opencv_contrib3.4.0
本文介绍了在Ubuntu 18.04系统上编译安装OpenCV 3.4.0及其扩展包opencv_contrib 3.4.0的详细步骤,包括下载源码、安装依赖、配置CMake和编译安装,以及常见问题的解决方法。
80 1
Ubuntu安装笔记(二):ubuntu18.04编译安装opencv 3.4.0 opencv_contrib3.4.0
|
1月前
|
PyTorch TensorFlow 算法框架/工具
Jetson环境安装(一):Ubuntu18.04安装pytorch、opencv、onnx、tensorflow、setuptools、pycuda....
本文提供了在Ubuntu 18.04操作系统的NVIDIA Jetson平台上安装深度学习和计算机视觉相关库的详细步骤,包括PyTorch、OpenCV、ONNX、TensorFlow等。
40 1
Jetson环境安装(一):Ubuntu18.04安装pytorch、opencv、onnx、tensorflow、setuptools、pycuda....
|
1月前
|
机器学习/深度学习 算法 计算机视觉
【Python篇】Python + OpenCV 全面实战:解锁图像处理与视觉智能的核心技能
【Python篇】Python + OpenCV 全面实战:解锁图像处理与视觉智能的核心技能
66 2
WK
|
3月前
|
计算机视觉 Python
如何使用OpenCV进行基本图像处理
使用OpenCV进行基本图像处理包括安装OpenCV,读取与显示图像,转换图像颜色空间(如从BGR到RGB),调整图像大小,裁剪特定区域,旋转图像,以及应用图像滤镜如高斯模糊等效果。这些基础操作是进行更复杂图像处理任务的前提。OpenCV还支持特征检测、图像分割及对象识别等高级功能。
WK
48 4
yolov5项目如何安装pycocotools和opencv-python?
本文提供了解决yolov5项目中安装pycocotools和opencv-python包失败的两种方法:手动安装或使用国内镜像源进行安装。
yolov5项目如何安装pycocotools和opencv-python?
|
3月前
|
前端开发 计算机视觉
Building wheel for opencv-python (pyproject.toml) ,安装命令增加 --verbose 参数
Building wheel for opencv-python (pyproject.toml) ,安装命令增加 --verbose 参数
182 2
|
5月前
|
机器学习/深度学习 算法 Java
计算机视觉——opencv快速入门(一) opencv的介绍与安装
OpenCV是开源计算机视觉库,支持C++, Python, Java等,用于图像处理、视频分析等。建议使用较早版本如3.4.3,因高版本部分算法需付费。通过Anaconda创建Python虚拟环境来安装,选择合适的Python和OpenCV版本。激活环境后,用`pip`安装`opencv-python`。基本环境配置完成后,通过显示图像的Python代码测试安装是否成功。
计算机视觉——opencv快速入门(一) opencv的介绍与安装