计算机视觉-OpenCV入门讲解

计算机视觉-OpenCV入门讲解计算机视觉是一门研究如何使机器 看 的科学 更进一步的说 就是是指用摄影机和电脑代替人眼对目标进行识别 跟踪和测量等机器视觉 并进一步做图形处理 使电脑处理成为更适合人眼观察或传送给仪器检测的图像 作为一个科学学科 计算机视觉研究相关的理论和技术 试图建立能够从图像或者多维数据中获取 信息 的人工智能系统 这里所指的信息指 Shannon 定义的 可以用来帮助做一个 决定 的信息 因为感知可以看作是从感官信号中提取信息 所以计算机视觉也可以看作是研究如何使人工系统从图像或多维数据中 感知 的科学 视觉是各个应

?作者简介在读计算机研究生,目前研二。主要研究方向是人工智能和群智能算法方向。目前熟悉python网页爬虫、机器学习、计算机视觉(OpenCV)、群智能算法目前正在学习深度学习的相关内容。
?个人主页:吃猫的鱼python个人主页
?支持如果觉得博主的文章还不错或者您用得到的话,可以免费的关注一下博主,如果三连收藏支持就更好啦!?就是给予我最大的支持!?
?本文摘要






本专栏将非常细致的讲解相关与计算机视觉OpenCV的相关知识即操作,非常的简单易懂。本文主要讲解相关与计算机视觉的相关入门内容,关于图像处理的相关简单操作,包括读入图像、显示图像及图像相关理论知识。

在这里插入图片描述





☀️一.什么是计算机视觉

☀️二.图片处理基础操作

在这里插入图片描述
首先我们来看一段简单的计算机视觉相关代码:

import cv2 img=cv2.imread('path')#path指图片相关路径 cv2.imshow('Demo',img) cv2.nameWindow('Demo') cv2.waitKey(0) cv2.destroyAllWindows() 

这段代码就可以在计算机中显示出img的相关图像。接下来我们讲解一下每一步的相关操作。

?图片处理:读入图像

?图片处理:显示图像

?图片处理:图像保存

☀️三.图像处理入门基础

?图像成像原理介绍

首先我们第一个要深深深深的刻在脑子里的概念就是:

图片是由像素点构成的。

在这里插入图片描述
生动一点表示就是这样:
在这里插入图片描述
这样就可以完美的展示出计算机图像的成像原理,就是用一个个有颜色的像素点拼接而成的。






?图像分类

☀️四、像素处理操作

?读取像素

?修改像素

?使用python中的numpy修改像素点

?读取像素
相关函数:返回值=图像.item(位置参数)
我们以灰度图像为例:
o=img,item(88,142)
print(o)
对于彩色图像我们还是:
blue=img.item(88,142,0)
green=img.item(88,142,1)
red=img.item(88,142,2)
然后print(blue,green,red)
?修改像素
图像名.itemset(位置,新的数值)
我们以灰度图像为例子:
img.itemset((88,99),255)
对于BGR图像:
img.itemset((88,99,0),255)
img.itemset((88,99,1),255)
img.itemset((88,99,2),255)


































import cv2 import numpy as np i=cv2.imread('path',cv2.IMREAD_UNCHANGED) print(i.item(100100)) i.itemset((100100),255) print(i,item(100100)) 

☀️五、获取图像属性

?形状

import cv2 img1=cv2.imread('灰度图像') print(img1.shape) 

?像素数目

?图像类型

dtype返回的是图像的数据类型

import cv2 img=cv2.imread('图像名称') print(img.dtype) 

☀️六.图像ROI

ROI(region of interest)表示感兴趣区域

  • 从被处理的图像中以方框、圆、椭圆或者不规则多边形等方式勾勒出需要处理的区域。
  • 可以通过各种算子(operator)和函数来求ROI,并进行下一步操作。
import cv2 import numpy as np a=cv2.imread('path') b=np.ones((1011013)) b=a[220:400,250:350] a[0:101,0:101]=b cv2.imshow('o',a) cv2.waitKey() cv2.destroyAllWindows() 

在这里插入图片描述
我们还可以将感兴趣的图像加入到别的图像当中。

☀️六、通道的拆分与合并

?拆分

import cv2 img=cv2.imread('图像名') b = img[ : , : , 0 ] g = img[ : , : , 1 ] r = img[ : , : , 2 ] 
import cv2 import numpy as np a=cv2.imread("image\lenacolor.png") b,g,r=cv2.split(a) cv2.imshow("B",b) cv2.imshow("G",g) cv2.imshow("R",r) cv2.waitKey() cv2.destroyAllWindows() 

在这里插入图片描述
?合并

import cv2 import numpy as np a=cv2.imread("image\lenacolor.png") b,g,r=cv2.split(a) m=cv2.merge([b,g,r]) cv2.imshow("merge",m) cv2.waitKey() cv2.destroyAllWindows() 

?文章适合于所有的相关人士进行学习?
?各位看官看完了之后不要立刻转身呀?
?期待三连关注小小博主加收藏?
?小小博主回关快 会给你意想不到的惊喜呀?
各位老板动动小手给小弟点赞收藏一下,多多支持是我更新得动力!!!








版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178687.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午4:43
下一篇 2026年3月26日 下午4:43


相关推荐

  • Eureka集群(Eureka详解)

    Eureka集群(Eureka详解)前言上篇文章,我们已经搭建了微服务的框架,使用了SOA(服务治理)Eureka参考:Eureka注册中心这篇文章教大家,如何使用IDEA搭建SpringCloud的集群,Spring拥有最简单的搭建集群方法一、使用IDEA二、配置写上你配置的名字,01,02区分就好,以及要集群那个模块三、端口号-Dserver.port=10087-D是修改,必须写…

    2022年5月5日
    62
  • http请求报400报错

    http请求报400报错400是HTTP的状态码,主要有两种形式:1、badrequest意思是“错误的请求”;2、invalidhostname意思是“不存在的域名”。在ajax请求后台数据时有时会报HTTP400错误-请求无效(Badrequest);出现这个请求无效报错说明请求没有进入到后台服务里;1、确认发送的数据格式是否正确。调试查看你发送的数据格式是否正确或是否有乱码…

    2022年6月12日
    97
  • IDEA快捷键设置复制上一行

    IDEA快捷键设置复制上一行Idea真是的一个神奇的ide,用着爱不择手。之前用习惯了eclipse的“ctrl+向下箭头”,复制一行,如何设置idea里这个快捷键呢File->settings->keymap->搜索duplicate->双击DuplicateEntireLines设置一下,搞定,又可以很爽的用ctrl+向下箭头复制一行了虽说以上的一种解决方法,但是经…

    2022年5月14日
    435
  • 多层try catch嵌套_方法嵌套一般不超过多少层

    多层try catch嵌套_方法嵌套一般不超过多少层先是aspx页面>其中关键是>GetData是一个自义函数,原型如下:protectedDataTableGetData(objectobj){DataTabledt=newDataTable();//这里做一些事情returndt;}完整的代码如下:aspxnidsbloghttp://www.ljnid.cn>aspx.cs文件usingSys

    2022年10月11日
    3
  • 我用Java+Redis+ES+Kibana技术对数百万知乎用户进行了数据分析,得到了这些…

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:_artoria_ http://tinyurl.com/quscxyl 1. 前言 我是一个真正的知乎小白。…

    2021年6月25日
    92
  • redis 使用

    redis 使用文章目录补充说明语法选项参数实例连接服务端添加数据查询数据删除数据补充说明 yum 安装的 redis conf 在 etc redis redis conf 语法 redis cli 选项 参数 选项 a 输入密码 n 选择数据库若无此参数默认选中 0 数据库参数 set 添加数据 keys 用于查询此参数后可输入正则查询 keys del 删除数据实例连接服务端无密码链接 redis cli 有密码链接 redis cli127 0 0 1 63

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号