机器视觉与OpenCV--01篇

计算机眼中的图像

像素

像素是图像的基本单位,每个像素存储着图像的颜色、亮度或者其他特征,一张图片就是由若干个像素组成的。

RGB

在计算机中,RGB三种颜色被称为RGB三通道,且每个通道的取值都是0到255之间。

计算机中图像的存储

我们要先弄清楚图像如何在计算机中存储,才能去很好的操作它们。在计算机中,图像的存储都是以【数组】的形式存在的。

一个RGB图像,其实就是一个三维数组,第一维度存【高度】,第二维度存【宽度】,第三维度存【颜色通道】。

注意一点:OpenCV中颜色存储不是RGB,而是BGR。

下面通过示例来解析三原色

对下面的 image 图像进行单元色分离,得出image_red、image_green和image_blue。

 方法一:

import numpy as np
import matplotlib.pyplot as plt

#创建三维全 0 数组
img = np.zeros((700,700,3),dtype=np.uint8)

for i in range(0,700,100):
    for j in range(0,700,100):
        img[i,:,:] = (255,255,255)
        img[:,j,:] = (255,255,255 )
        if i!=0 and j!=0 and i!=600 and j!=600 and (i==j or i+j==600):
            img[i:i+100,j:j+100,:] = (255,0,0)

#创建三通道图
img_red = np.zeros((700,700,3),dtype=np.uint8)
img_green = np.zeros((700,700,3),dtype=np.uint8)
img_blue = np.zeros((700,700,3),dtype=np.uint8)

#分离原图三原色
R = img[:,:,0]
G = img[:,:,1]
B = img[:,:,2]

#三原色赋值三通道
img_blue[:,:,0] = B
img_green[:,:,1] = G
img_red[:,:,2] = R

plt.subplot(232)
plt.imshow(img)
plt.subplot(234)
plt.imshow(img_red)
plt.subplot(235)
plt.imshow(img_green)
plt.subplot(236)
plt.imshow(img_blue)


plt.show()

  方法二:

import cv2
import numpy as np

# cv2.imshow()        #显示由cv2.imread()读取的图像
# cv2.rectangle()     #绘制矩形
# cv2.waitKey()       #用于用户等待时间,设置为0,表示无限等待
# cv2.split()         #用于分隔图像


img = np.zeros((700,700,3),dtype=np.uint8)

for i in range(0,700,100):
    for j in range(0,700,100):
        top_left = (j,i)
        bottom_right = (j+100-1,i+100-1)
        if i!=0 and j!=0 and i!=600 and j!=600 and (i==j or i+j==600):
            cv2.rectangle(img,top_left,bottom_right,(0,0,255),-1)
        else:
            cv2.rectangle(img,top_left,bottom_right,(255,255,255),2)

#创建三通道图
img_red = np.zeros((700,700,3),dtype=np.uint8)
img_green = np.zeros((700,700,3),dtype=np.uint8)
img_blue = np.zeros((700,700,3),dtype=np.uint8)

#分离原图三原色
B,G,R= cv2.split(img)

#三原色赋值三通道
img_blue[:,:,0] = B
img_green[:,:,1] = G
img_red[:,:,2] = R


cv2.imshow('image',img)
cv2.imshow('image_blue',img_blue)
cv2.imshow('image_green',img_green)
cv2.imshow('image_red',img_red)
cv2.waitKey(0)

OpenCV介绍

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。它包含了众多关于图像处理和计算机视觉的通用算法,这些算法可以用于解决各种实际问题,比如人脸识别、物体检测、图像分割、视频分析等。OpenCV 提供了 C++、Python、Java 和 MATLAB 等多种语言的接口,其中 Python 接口由于其简洁性和易用性而特别受欢迎。

以下是 OpenCV Python 的一些关键特性和用途:

关键特性

  1. ‌丰富的功能‌:OpenCV 提供了大量的图像处理函数,包括滤波、边缘检测、形态学操作、图像变换、特征检测与匹配、相机标定与三维重建等。
  2. ‌高性能‌:OpenCV 是用 C++ 编写的,并进行了高度优化,因此在处理大规模图像数据时具有很高的性能。Python 接口通过调用底层的 C++ 实现来保持高效性。
  3. ‌跨平台‌:OpenCV 可以在多种操作系统上运行,包括 Windows、Linux、macOS 和 Android 等。
  4. ‌易于使用‌:OpenCV 的 Python 接口设计直观,易于学习和使用。同时,OpenCV 还提供了详细的文档和丰富的教程资源。
  5. ‌社区支持‌:OpenCV 拥有一个活跃的社区,用户可以在论坛、GitHub 和 Stack Overflow 等平台上寻求帮助和分享经验。

用途

  1. ‌图像处理‌:OpenCV 可以用于图像的滤波、去噪、增强、变换等操作,以改善图像的质量或提取有用的信息。
  2. ‌物体检测与识别‌:利用 OpenCV 提供的特征检测器(如 SIFT、SURF、ORB 等)和机器学习算法(如 SVM、随机森林等),可以实现物体的检测和识别。
  3. ‌视频分析‌:OpenCV 支持视频捕捉、处理和分析,可以用于视频跟踪、运动检测、背景减除等任务。
  4. ‌人脸识别‌:OpenCV 提供了多种人脸识别算法,如 Eigenfaces、Fisherfaces、LBPH(Local Binary Patterns Histograms)等,可以用于人脸检测、识别和验证。
  5. ‌三维重建‌:通过相机标定和立体视觉技术,OpenCV 可以实现三维场景的重建和测量。
  6. ‌增强现实(AR)‌:OpenCV 可以与计算机图形学库结合使用,实现增强现实应用,如在真实场景中叠加虚拟对象。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/935437.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络安全创新实验

一、网络拓扑设计 二、网络主机概况 本实验一共包含4台虚拟机,分别为攻击机attacker,网关gateway,内网普通用户主机pc,内网服务器server,四台主机的详细信息如下表所示: 名称操作系统IP地址网络模式作用攻…

y3编辑器教学5:触发器2 案例演示

文章目录 一、探索1.1 ECA1.1.1 ECA的定义1.1.2 使用触发器实现瞬间移动效果 1.2 变量1.2.1 什么是变量1.2.2 使用变量存储碎片收集数量并展现 1.3 if语句(魔法效果挂接)1.3.1 地形设置1.3.2 编写能量灌注逻辑1.3.3 编写能量灌注后,实现传送逻…

016 在路由器上配置 DHCP

配置路由器端口IP地址 将路由器的端口地址配置好, 左边的网络地址是 192.168.1.0 右边的网络地址是 192.168.2.0 配置路由器的DHCP服务 打开命令窗口,进入特权模式 进入全局配置 conf t创建一个DHCP地址池; po1 是地址池的名称&#xf…

恋爱脑学Rust之并行之旅:Rayon介绍和使用

文章目录 一、开启爱情的依赖之旅(安装 Rayon)二、甜蜜瞬间的并行享受(基本数据并行操作)(一)共享美好时光(par_iter 方法)(二)分块珍藏回忆(par_…

【数据库系列】PostgreSQL 数据库连接

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

中介者模式的理解和实践

一、中介者模式概述 中介者模式(Mediator Pattern),也称为调解者模式或调停者模式,是一种行为设计模式。它的核心思想是通过引入一个中介者对象来封装一系列对象之间的交互,使得这些对象不必直接相互作用,从…

吸烟抽烟行为识别数据集-超高识别率,支持YOLO,COCO,VOC格式的标注,10162张各种姿势场景下的吸烟图片

吸烟抽烟行为识别数据集-超高识别率,支持YOLO,COCO,VOC格式的标注,10162张各种姿势场景下的吸烟图片 数据集分割 训练组91% 9279图片 有效集5% 507图片 测试集4% 376图片 预处理 自动定…

【开源】基于SpringBoot框架的房屋租赁系统 (计算机毕业设计)+万字毕业论文 T020

系统合集跳转 源码获取链接 一、系统环境 运行环境: 最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 IDE环境: Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以 tomcat环境: Tomcat 7.x,8.x,9.x版本均可 操作系统…

C++20 标准概念

1. 所有标准概念的概述 “类型和对象基本概念”表列出了类型和对象的基本概念。 “范围、迭代器和算法概念”表列出了范围、视图、迭代器和算法的概念。 “辅助概念”表列出的概念主要用作其他概念的构建块,通常不会让应用程序开发者直接使用。 头文件和命名空间 …

git的卸载与安装

目录 一、Git的卸载 二、Git的安装 2.1.1 官网下载 2.1.2 镜像下载 ​编辑 2.2 安装 2.3 检验否安装成功 三、Git使用配置 一、Git的卸载 1.找到程序,卸载程序 2.找到Git,右键卸载 卸载完成! 二、Git的安装 2.1.1 官网下载 网址&…

科技赋能电影,互动电影开启电影新格局

近年来,科技赋能电影,让电影越来越精彩,也越来越多元。层出不穷的新技术新类型,不断丰富着电影视听语言的表现形式,也为观众带来更多具有交互性和个性化的观影体验。进昂互动科技在推出全球首部院线互动电影《夜班》之…

python 下载 b站视频 和音频

video_bvid: import os import requests import json import re from bs4 import BeautifulSoup import subprocess # from detail_video import video_bvid# video_bvid 是一个从外部得到的单个视频ID video_bvid BV1cx421Q7veclass BilibiliVideoAudio:def __in…

操作系统:虚拟存储系统

目录 1、外存资源管理 外存空间划分 进程与外存对应关系 2、虚拟页式存储系统 3、 淘汰算法(重点)P217 最佳淘汰算法(OPT) 先进先出(FIFO) 最近最少使用算法(LRU) 最近不用的先淘汰(LNU) 最不经常…

Linux24.04 安装企业微信

今天工作需要把windows系统换成了linux,但是公司的沟通工具是企业微信。去企业微信官网看了,没有linux版本,只能想办法解决了,不然再换回去就太坑了。 方案 1、使用docker容器,2、使用deepin-wine 本人对docker不太熟…

手机实时提取SIM卡打电话的信令声音--社会价值(一、方案解决了什么问题)

手机实时提取SIM卡打电话的信令声音 --社会价值(一、方案解决了什么问题) 一、前言 这段时间,我们在技术范围之外陷入了一个自证或者说下定义的怪圈,即要怎么样去介绍或者描述:我们是一个什么样的产品。它在当前这个世界上,处于…

UnityShaderLab 实现黑白着色器效果

实现思路:取屏幕像素的RGB值,将三个通道的值相加,除以一个大于值使颜色值在0-1内,再乘上一个强度值调节黑白强度。 在URP中实现需要开启Opaque Texture ShaderGraph实现: ShaderLab实现: Shader "Bl…

Burp suite2 (泷羽sec)

声明 学习视频来自B站UP主 泷羽sec,如涉及侵泷羽sec权马上删除文章。 笔记只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 这节课旨在扩大自己在网络安全方面的知识面,了解网络安全领域的见闻,了…

Devops-蓝鲸篇-01-蓝鲸智云简介

官方社区 蓝鲸智云学习社区:https://bk.tencent.com/s-mart/communities 蓝鲸简介 腾讯蓝鲸智云,简称蓝鲸,是腾讯互动娱乐事业群(Interactive Entertainment Group,简称 IEG)基于海量异构业务自研的一套…

9. 高效利用Excel设置归档Tag

高效利用Excel设置归档Tag 1. Excle批量新建/修改归档Tag2. 趋势记录模型批量导入归档Tag(Method1)2. 趋势记录模型批量导入归档Tag(Method2)3. 趋势记录控件1. Excle批量新建/修改归档Tag Fcatory Talk常常需要归档模拟量,对于比较大的项目工程会有成千上万个重要数据需…

未来已来:人工智能如何重塑我们的生活与工作

引言 未来的生活和工作场景正从想象走向现实。想象一下,一个清晨,语音助手已经为你安排好一天的任务,自动驾驶汽车准时送你上班,智能冰箱提醒你需要补充的食材。曾经只存在于科幻小说中的场景,如今正在我们的身边实现。…