代码编织梦想

一.OpenCV入门

一.安装opencv

1.安装Opencv-Contrib-Python

2.win+r打开电脑终端输入pip install opencv-contrib-python

二.入门,图像

1.图像的简单操作

1.cv2.imread(filename,flages)读取图像的函数*

filenname:要读取的图像的完整文件名或文件路径。

cv2.imread("D:\\CH\\cv\\add.jpg",1)双反斜杠

cv2.imread(r"D:\CH\cv\add.jpg",1)转换符

flages:要读取的图像颜色类型 ,参数默认为1,1为彩色,0为灰色

2.cv2.imshow(winname,mat)显示图像的函数

winname:显示图像的窗口名称

mat:要显示的图像

3.cv2.waitKey(delay)==27方法用于等待用户按下键盘上按键的时间

delay:等待用户在键盘上按键的时间单位毫秒,当delay等于0,负数,空格时为无限时间

27为Ascll值对应的键是Esc键,理解:按下Esc键关闭窗口Ascll值查看用ord()方法

4.cv2.destroyAllWindows()方法用于销毁所有正在显示的窗口

5.cv2.imwrite(filename,ing),方法用于保存图像

filename:要保存图像的完整路径从盘名到你要保存的图像名例如:

H:\python\opencv\CV\CH.jpg,其中CH.jpg为将保存的图片从新命名

ing:为读取图像信息的变量

import cv2
a=cv2.imread(r"图片名称.png",0)#读取的颜色为灰色
c=cv2.imread(r"图片名称.png“)#读取色彩图
print(a)#输出图片的像素值
cv2.imshow("image",a)#显示上面的图像
cv2.imshow("b",b)
cv2.waitKey(0)#永久显示图像并且按下任意键关闭窗口
cv2.destroyAllWindows()#销毁所显示的全部图像
c8049e073ccd4a9db04a2e7a1383dc7a.png
9938ca5bcbb248f88d0d102fcc9bbce8.png

2.图像的基本性质

一.shape,size,dtype三个属性

shape:彩色图像,获取的是一个包含图像的水平像素、垂直像素、和通道数的数组,即(垂直像素,水平像素,通道数),如果是灰度图获取的是垂直像素和水平像素。

size:获取的是像素个数,其值为“水平像素x垂直像素x通道数”灰度图像的通道为1。

dtype:获取图像的数据类型

三.像素

1.像素是图像的最小单位,是构成数字图像的基本单位。
import cv2
jmh=cv2.imread("CH.jpg")
for x in range(125,520):#x轴
    for y inrange(0,500):#y轴
        jmh[x,y]=[0,0,0]#修改BGR为黑色
cv2.imshow("ch",jmh)
cv2.waitKey()
cv2.destroyAllWindows()
#使用循环遍历像素点修改像素点
2766e1541f964f249a2442c73dbb4e3a.png

四.numpy操作像素

1.array(object,dtype,ndmin) 生成矩阵

abject:数组

dtype:数组的数据类型

ndmin:数组的最小维度

2.empty([x,y],dtype=type) 随机生成x行,y列可指定数据类型的二维矩阵

3.ones(x,y) 生成x行y列其元素为1且默认参数为浮点型的矩阵

2.二维矩阵的切片

a[嵌套列表的索引,嵌套列表内的索引] 要是索引了多个嵌套列表,则返回多个嵌套列表内部索引

高维度矩阵索引,从高维到低维

import numpy as np
a=np.array([[1,2,3],[4,5,6],[7,8,9]])
a[1,:3]
>>[4,5]
a[:,0]
>>[1,4,7]
#一维索引和二维索引
a[:,0]
>>[1,4,7]
a[:,0:1]
>>[[1],
   [4],
   [7]]
3.创建图像

黑白图像是二维数组,彩色图像是三维数组,数组的每个元素就是图像对应的像素值,修改像素就是修改数组

import cv2
import numpy as np
w=2000#设置长
h=1000#设置宽
jmh=np.zeros((w,h),np.uint8)#生成长为w,宽为h的二维数组
for i in range(0,w,40):#循环以宽为遍历,跨度为40
    jmh[:,i:i+20]=255#白色区域宽为20个像素
cv2.imshow("ch",jmh)
cv2.waitKey(0)
cv2.destroyAllWindows()
584c3192339244f8a334362bddb435b7.png

彩色图像是由三位数组构成的像素以及通道构成------水平像素,垂直像素,通道数

b=255,0,0

g=0,255,0

r=0,0,255

import cv2
import numpy as np
h=700
w=1500
# a=np.zeros((w,h,3),np.uint8)#创建全是0的三位数组显示图片为纯黑
# b=a.copy()#为下面的蓝色操作图像拷贝数组,下同
# g=a.copy()
# r=a.copy()
# b[:,:,0]=255#修改第一通道蓝色
# g[:,:,1]=255#修改第二通道绿色
# r[:,:,2]=255#修改第三通道红色
# cv2.imshow("blue",b)#显示图像
# cv2.imshow("green",g)
# cv2.imshow("red",r)
# cv2.waitKey()
# cv2.destroyAllWindows()
a=np.random.randint(0,256,size=(h,w,3),dtype=np.uint8)#y,x轴
cv2.imshow("ch",a)
cv2.waitKey()
cv2.destroyAllWindows()
93720c3681744998a17b6c62af1357dc.png

上面可执行代码的结果

4.拼接图像

a=np.hstack(tup) 水平拼接

参数tup:要拼接的图片像素矩阵

a=np.vstack

importcv2
importnumpyasnp
x=80
y=80
jmh=np.zeros((y,x,3),np.uint8)#生成一个宽为x,高为y的纯黑图像,指定维度为3,类型为uint8
a=jmh.copy()#浅拷贝
b=jmh.copy()
a[:,:,0]=255#修改第一通道为b
b[:,:,1]=255#修改第二通道为g
bmh=np.hstack((a,b))#水平拼接
vss=np.vstack((a,b))#垂直拼接
cv2.imshow("ch",vss)
cv2.imshow("CH",bmh)
cv2.waitKey()
cv2.destroyAllWindows()
6d86145486154afea27582c25270b054.png

544da7728f074f3aa318f443f11c476b.png

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_73815298/article/details/129676712

[python图像处理] 一.图像处理基础知识及opencv入门函数_eastmount的博客-爱代码爱编程_图像处理python

该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。希望文章

【python+opencv入门学习】八、图像基本操作_楚俊慕的博客-爱代码爱编程

本篇文章,将学习如何访问与修改像素值,获取图像的属性信息,设置感兴趣区域(ROI),拆分和合并图像等,本篇介绍的主要是numpy的方法而非OpenCV中的方法。 环境:Windows 7(64)   python 3.6    opencv 3.4.2 一、访问与修改像素值 这个是比较简单,和操作数组类似,在此直接上代码。 import numpy

【python+opencv入门学习】十七、图像金字塔_楚俊慕的博客-爱代码爱编程

本篇文章介绍图像金字塔处理,某些时候我们需要一组不同分辨率大小的相同图像,这一组图像按金字塔方式堆叠,底部具有最高分辨率图像而顶部具有最低分辨率图像。 主要学习cv.pyrUp(),cv.pyrDown()函数的使用。 环境:Windows 7(64)   Python 3.6    OpenCV 3.4.2 一、图像金字塔 1.1 相关函数介绍

python opencv 图像切割_使用Python+OpenCV进行图像处理(二)| 视觉入门-爱代码爱编程

译者 | 磐石 编辑 | 安可 【前言】图像预处理对于整个图像处理任务来讲特别重要。如果我们没有进行恰当的预处理,无论我们有多么好的数据也很难得到理想的结果。 本篇是视觉入门系列教程的第二篇。整个视觉入门系列内容如下: 理解颜色模型与在图像上绘制图形(图像处理基本操作)。基本的图像处理与滤波技术。从特征检测到人脸检测。图像分割

使用Python+OpenCV进行图像处理之入门教程-爱代码爱编程

简介 人脸识别和目标检测这样的术语听起来觉得很酷,但是当涉及到从头开始实现它们时,每个初学者都会觉得困难,这些技术实际上并没有那么难实现,一旦你掌握了其基本原理,那么实现它们就相当简单了。 图像处理有很多种应用,包括用于解析文档和生成相应文本的光学字符识别(OCR)、图像增强与重建、物体识别、人体运动识别、手势识别、人脸识别等。 在学习的过

python-OpenCV轻松入门-图像轮廓-爱代码爱编程

文章目录 前言一、图像轮廓是什么?二、使用步骤1.获取图像轮廓2.绘制图像轮廓3.实物轮廓检测总结 前言 随着人工智能的不断发展,OpenCV这门技术也越来越重要,很多人都开启了学习OpenCV,本文就介绍了OpenCV的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、图像轮廓是什么? 轮廓是一系列相连的点组成的曲线,代

[Python从零到壹] 三十四.OpenCV入门详解——显示读取修改及保存图像-爱代码爱编程

欢迎大家来到“Python从零到壹”,在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界。所有文章都将结合案例、代码和作者的经验讲解,真心想把自己近十年的编程经验分享给大家,希望对您有所帮助,文章中不足之处也请海涵。Python系列整体框架包括基础语法10篇、网络爬虫30篇、可视化分析10篇、机器学习20篇

[Python从零到壹] 三十五.图像处理基础篇之OpenCV绘制各类几何图形-爱代码爱编程

欢迎大家来到“Python从零到壹”,在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界。所有文章都将结合案例、代码和作者的经验讲解,真心想把自己近十年的编程经验分享给大家,希望对您有所帮助,文章中不足之处也请海涵。Python系列整体框架包括基础语法10篇、网络爬虫30篇、可视化分析10篇、机器学习20篇

opencv+python实战日记 入门篇(二)-爱代码爱编程

目录 调整图片的尺寸 裁剪图像 调整图片的尺寸 打印出来的(496, 488, 3)表示的是图片的长宽,3表示的是RGB通道。   import cv2 import numpy as np img = cv2.imread("sources/test.png") #调整图片大小 print(img.shape)#打印图片尺寸 imgR

opencv+python实战日记 入门篇(八)色块识别-爱代码爱编程

色块识别 import cv2 import numpy as np frameWidth = 640 frameHeight = 480 cap = cv2.VideoCapture(0)#获取摄像头 cap.set(3,640) cap.set(4,480) cap.set(10,100)#调节亮度 myColors = [[2,107,0,19

python机器学习入门之opencv的使用(超详细,必看)_showswoller的博客-爱代码爱编程

 opencv广泛用于多种于计算机视觉和机器学习相关的算法 其用C++语言编写,主要接口也是C++语言 但也有python等环境的接口 接下来我们着重介绍他的使用。 opencv python是一个用于解决计算机视觉问题的python库  opencv python与numpy兼容 数据都被转换成numpy数据结构 安装可以看我这篇博客opencv的安

qt msvc配置opencv教程,亲测已试过(详细版)-爱代码爱编程

文章目录 1:软件准备Qt 下载OpenCV Download 2:使用 个人笔记: 1:软件准备 首先要说的是装软件还是装最新的好,不用考虑各种软件的版本对应问题,都是最新版的情况下它们

opencv学习笔记——图像基本操作_imwrite 中查看图片是bgr 还是rgb-爱代码爱编程

文章目录 前言一、数据读取-图像1.读取图像2.读取部分图像 二、数据读取-视频三、颜色通道提取四、边界填充五、数值计算六、图像融合 前言 先说一些图像的基本知识: (1)图像由像素构成

opencv图像对齐与图像相减python_opencv图像相减-爱代码爱编程

1.问题背景: 给一张图片和模板图片(如下图),需要用传统机器视觉的方法来提取他们不一样的特征(也就是划痕部分),并把划痕转为二值化 1.1 才开始使用基于灰度的方法: 因为划痕和旁边背景颜色比较接近,绘制出的灰

给深度学习入门者的python-爱代码爱编程

这篇文章主要介绍了Python OpenCV快速入门教程,帮助大家更好的利用opencv图像处理,感兴趣的同学可以了解下 OpenCV简介 OpenCV是计算机视觉中最受欢迎的库,最初由intel使用C和C ++进行开发的,现在也可以在python中使用。该库是一个跨平台的开源库,是免费使用的。OpenCV库是一个高度优化的库,主要关注实时应用程序。

python图像识别-爱代码爱编程

前情提要:作为一个程序员小白,我是从0开始自己学习写代码的。所以本着独乐乐不如众乐乐的思想,就干脆把自己的学习路线直接编辑到在线文档上,这样也供大家一起参考学习。当然我分享的也只我接受到的片面知识,如果各位大佬有其它方向的内容或者补充,恳请赐教!! 祝大家都能在自己热爱的事业上出类拔萃,达成价值! 载入图像: import cv2.cv2 as cv