Python Opencv图像处理基本操作代码详解
1.图像读取
使用cv2.imread(filepath,flags)读入图像
filepath: 读入图像完整路径(绝对路径,相对路径)
flags: 读入图像标志
- cv2.IMREAD_COLOR:默认参数,读入一副彩色图,忽略alpha通道;可以通过1指定
- cv2.IMREAD_GRAYSCALE:读入灰度图片 也通过0指定
- cv2.IMREAD_UNCHANGED:读入完整图片,包括alpha通道
import cv2
img1 = cv2.imread('C:/star.png',1)
img2 = cv2.imread('C:/star.png',0)
2.图像显示
使用函数cv2.imshow(wname,img)显示图像
wname: 显示图像窗口名字
img: 图像(其实是<class 'numpy.ndarray'>类型矩阵)
cv2.waitKey(delay)函数的功能是不断刷新图像,频率时间为delay,单位为ms
返回值为当前键盘按键值
cv2.waitKey(0) 等待按键
import cv2 img = cv2.imread('C:/star.png',1) print(type(img))#<class 'numpy.ndarray'> cv2.imshow('img',img) cv2.waitKey(0) ''' #按键返回 k=cv2.waitKey(0) if k == 27: cv2.destroyAllWindows() elif k == ord('s'): cv2.imwrite('F:/gray.jpg',img) cv2.destroyAllWindows() '''
3.图像保存
cv2.imwrite(imageName, Image)
imageName: 需要写入的文件名就行了(包含后缀)
有第三个参数,表示为特定格式保存的参数编码,有默认值,一般不需要填写
import cv2
img = cv2.imread('C:/star.png',1)
cv2.imread('D:/star.png',img)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
python opencv 实现对图像边缘扩充
原始图像 根据图像的边界的像素值,向外扩充图片,每个方向扩充50个像素. a = cv2.copyMakeBorder(img,50,50,50,50,cv2.BORDER_REPLICATE) 把靠近边界的50个像素翻折出去(轴对称): a = cv2.copyMakeBorder(img,50,50,50,50,cv2.BORDER_REFLECT) 常数填充: a = cv2.copyMakeBorder(img,50,50,50,50, cv2.BORDER_CONSTANT,value
-
浅谈python opencv对图像颜色通道进行加减操作溢出
由于opencv读入图片数据类型是uint8类型,直接加减会导致数据溢出现象 (1)用Numpy操作 可以先将图片数据类型转换成int类型进行计算, data=np.array(image,dtype='int') 经过处理后(如:遍历,将大于255的置为255,小于0的置为0) 再将图片还原成uint8类型 data=np.array(image,dtype='uint8') 注意: (1)如果直接相加,那么 当像素值 > 255时,结果为对256取模的结果,例如:(240+66) % 256
-
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
我就废话不多说了,大家还是直接看代码吧! import cv2 # 读取图片并缩放方便显示 img = cv2.imread('D:/6.jpg') height, width = img.shape[:2] size = (int(width * 0.2), int(height * 0.2)) # 缩放 img = cv2.resize(img, size, interpolation=cv2.INTER_AREA) # BGR转化为HSV HSV = cv2.cvtColor(img, c
-
python使用OpenCV模块实现图像的融合示例代码
可以通过OpenCV函数cv.add()或简单地通过numpy操作添加两个图像,res = img1 + img2.两个图像应该具有相同的深度和类型,或者第二个图像可以是标量值. 三种融合 注意融合时,一般来说两个图像的尺寸是一样大小的,如果大小不一样,需要把大的图像的某一部分先截出来,与小的图先融合,再作为整体替换掉原来大图中抠出的小图部分. """ # @Time : 2020/4/3 # @Author : JMChen """ impor
-
python用opencv完成图像分割并进行目标物的提取
运行平台: Windows Python版本: Python3.x IDE: Spyder 今天我们想实现的功能是对单个目标图片的提取如图所示: 图片读取 ###############头文件 import matplotlib.pyplot as plt import os import cv2 import numpy as np from PIL import Image #from skimage import io import random from PIL import Image
-
opencv python图像梯度实例详解
这篇文章主要介绍了opencv python图像梯度实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一阶导数与Soble算子 二阶导数与拉普拉斯算子 图像边缘: Soble算子: 二阶导数: 拉普拉斯算子: import cv2 as cv import numpy as np # 图像梯度(由x,y方向上的偏导数和偏移构成),有一阶导数(sobel算子)和二阶导数(Laplace算子) # 用于求解图像边缘,一阶的极大值,二阶的零点
-
python opencv 实现读取、显示、写入图像的方法
opencv是一个强大的图像处理和计算机视觉库,实现了很多实用算法,值得学习和深究下. opencv包安装 · 这里直接安装opencv-python包(非官方): pip install opencv-python 官方文档:https://opencv-python-tutroals.readthedocs.io/en/latest/ 1.读取图像 import cv2 image=cv2.imread("dog2.jpg",1) 说明: 第二个参数是一个标志,它指定了读取图像的方
-
Python+OpenCV实现图像的全景拼接
本文实例为大家分享了Python+OpenCV实现图像的全景拼接的具体代码,供大家参考,具体内容如下 环境:python3.5.2 + openCV3.4 1.算法目的 将两张相同场景的场景图片进行全景拼接. 2.算法步骤 本算法基本步骤有以下几步: 步骤1:将图形先进行桶形矫正 没有进行桶形变换的图片效果可能会像以下这样: 图片越多拼接可能就会越夸张. 本算法是将图片进行桶形矫正.目的就是来缩减透视变换(Homography)之后图片产生的变形,从而使拼接图片变得畸形. 步骤2:特征点匹配 本
-
Python Opencv图像处理基本操作代码详解
1.图像读取 使用cv2.imread(filepath,flags)读入图像 filepath: 读入图像完整路径(绝对路径,相对路径) flags: 读入图像标志 cv2.IMREAD_COLOR:默认参数,读入一副彩色图,忽略alpha通道:可以通过1指定 cv2.IMREAD_GRAYSCALE:读入灰度图片 也通过0指定 cv2.IMREAD_UNCHANGED:读入完整图片,包括alpha通道 import cv2 img1 = cv2.imread('C:/star.png',1)
-
python opencv图像处理基本操作示例详解
目录 1.图像基本操作 ①读取图像 ②显示图像 ③视频读取 ④图像截取 ⑤颜色通道提取及还原 ⑥边界填充 ⑦数值计算 ⑧图像融合 2.阈值与平滑处理 ①设定阈值并对图像处理 ②图像平滑-均值滤波 ③图像平滑-方框滤波 ④图像平滑-高斯滤波 ⑤图像平滑-中值滤波 3.图像的形态学处理 ①腐蚀操作 ②膨胀操作 ③开运算和闭运算 4.图像梯度处理 ①梯度运算 ②礼帽与黑帽 ③图像的梯度处理 5.边缘检测 ①Canny边缘检测 1.图像基本操作 ①读取图像 ②显示图像 该函数中,name是显示窗口的名字
-
python OpenCV 实现高斯滤波详解
目录 一.高斯滤波 二.C++代码 三.python代码 四.结果展示 1.原始图像 2.5x5卷积 3.9x9卷积 一.高斯滤波 高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程. [1] 通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到.高斯滤波的具体操作是:用一个模板(或称卷积.掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值. 二.C++代码
-
Python OpenCV机器学习之图像识别详解
目录 背景 一.人脸识别 二.车牌识别 三.DNN图像分类 背景 OpenCV中也提供了一些机器学习的方法,例如DNN:本篇将简单介绍一下机器学习的一些应用,对比传统和前沿的算法,能从其中看出优劣: 一.人脸识别 主要有以下两种实现方法: 1.哈尔(Haar)级联法:专门解决人脸识别而推出的传统算法: 实现步骤: 创建Haar级联器: 导入图片并将其灰度化: 调用函数接口进行人脸识别: 函数原型: detectMultiScale(img,scaleFactor,minNeighbors) sc
-
Python OpenCV绘制各类几何图形详解
目录 一.绘制直线 二.绘制矩形 三.绘制圆形 四.绘制椭圆 五.绘制多边形 六.绘制文字 七.总结 一.绘制直线 在OpenCV中,绘制直线需要获取直线的起点和终点坐标,调用cv2.line()函数实现该功能.该函数原型如下所示: img = line(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) – img表示需要绘制的那幅图像 – pt1表示线段第一个点的坐标 – pt2表示线段第二个点的坐标 – color表示线条颜色,需
-
Python+OpenCV绘制灰度直方图详解
1.直方图的概念 图像直方图是反映一个图像像素分布的统计表,其实横坐标代表了图像像素的种类,可以是灰度的,也可以是彩色的.纵坐标代表了每一种颜色值在图像中的像素总数或者占所有像素个数的百分比.图像是由像素构成,因为反映像素分布的直方图往往可以作为图像一个很重要的特征. 图像灰度直方图: 一幅图像由不同灰度值的像素组成,图像中灰度的分布情况是该图像的一个重要特征.图像的灰度直方图就描述了图像中灰度分布情况,能够很直观的展示出图像中各个灰度级所占的多少.图像的灰度直方图是灰度级的函数,描述的是图像中
-
Python OpenCV形态学运算示例详解
目录 1. 腐蚀 & 膨胀 1.1什么是腐蚀&膨胀 1.2 腐蚀方法 cv2.erode() 1.3 膨胀方法 cv2.dilate() 2. 开运算 & 闭运算 2.1 简述 2.2 开运算 2.3 闭运算 3. morphologyEx()方法 3.1 morphologyEx()方法 介绍 3.2 梯度运算 3.3 顶帽运算 3.4 黑帽运算 1. 腐蚀 & 膨胀 1.1什么是腐蚀&膨胀 腐蚀&膨胀是图像形态学中的两种核心操作 腐蚀可以描述为是让图像沿
-
OpenCV图像处理之图像拼接详解
目录 图像拼接技术 一.需求分析 二.具体步骤 三.代码实现 图像拼接技术 一.需求分析 将下面两张图像进行拼接 拼接得到一张完整的图像 二.具体步骤 1.选择特征点 //1.选择特征点 //左图 右图 识别特征点 是Mat对象 用c d保存 surf->detectAndCompute(left,Mat(),key2,d); surf->detectAndCompute(right,Mat(),key1,c); //特征点对比,保存 特征点为中心点区域比对 vector<DMatch&
-
Python+OpenCV之图像轮廓详解
目录 1. 图像轮廓 1.1 findContours介绍 1.2 绘制轮廓 1.3 轮廓特征 2. 轮廓近似 2.1 轮廓 2.2 边界矩形 2.3 外界多边形及面积 1. 图像轮廓 1.1 findContours介绍 cv2.findContours(img, mode, method) mode:轮廓检索模式 RETR_EXTERNAL :只检索最外面的轮廓: RETR_LIST:检索所有的轮廓,并将其保存到一条链表当中: RETR_CCOMP:检索所有的轮廓,并将他们组织为两层:顶层是
-
Python探索之ModelForm代码详解
这是一个神奇的组件,通过名字我们可以看出来,这个组件的功能就是把model和form组合起来,对,你没猜错,相信自己的英语水平. 先来一个简单的例子来看一下这个东西怎么用: 比如我们的数据库中有这样一张学生表,字段有姓名,年龄,爱好,邮箱,电话,住址,注册时间等等一大堆信息,现在让你写一个创建学生的页面,你的后台应该怎么写呢? 首先我们会在前端一个一个罗列出这些字段,让用户去填写,然后我们从后天一个一个接收用户的输入,创建一个新的学生对象,保存 其实,重点不是这些,而是合法性验证,我们需要在前端
随机推荐
- 如何把sqlserver数据迁移到mysql数据库及需要注意事项
- 浅谈javascript的原型继承
- Java列出2到100之间所有素数的方法
- IOS MenuViewController实现弹出菜单效果
- python select.select模块通信全过程解析
- GridView控件实现数据的显示和删除(第8节)
- asp.net 页面逐步呈现的方法总结
- javascript字母大小写转换的4个函数详解
- asp.net fileupload控件上传图片并预览图片
- 微信小程序picker组件下拉框选择input输入框的实例
- 微信小程序 setData的使用方法详解
- 金山反病毒20050110_周报
- 什么是Tag?
- c语言_构建一个静态二叉树实现方法
- OLEDB打开Excel文件的实现方法
- Android图片处理实例分析
- 关于Google Adsense 2007年1月新条款的解释说明
- Python面向对象class类属性及子类用法分析
- vue单页应用加百度统计代码(亲测有效)
- python实现可逆简单的加密算法