?作者简介:在读计算机研究生,目前研二。主要研究方向是人工智能和群智能算法方向。目前熟悉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(100,100)) i.itemset((100,100),255) print(i,item(100,100))
☀️五、获取图像属性
?形状
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((101,101,3)) 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
