python-opencv的一些基础操作
import cv2 import numpy as np import glob''' img = cv2.imread('figures/img_1.jpg') cv2.imshow('src', img) print(img.shape) #(h,w,c) 打印图片的维度,(高度,宽度,通道数) print(img.size) #像素总数目 print(img.dtype) #unit8 print(img) #显示一个numpy矩阵 cv2.waitKey() #图片显示着,直到按下任意一个键才被关掉 gray = cv2.imread('figures/img_1.jpg', cv2.IMREAD_GRAYSCALE) cv2.imshow('gray',gray) cv2.waitKey() anyColor = cv2.imread('figures/img_1.jpg', cv2.IMREAD_ANYCOLOR) cv2.imshow('anyColor',anyColor) cv2.waitKey() Color = cv2.imread('figures/img_1.jpg', cv2.IMREAD_COLOR) cv2.imshow('Color',Color) cv2.waitKey() #也可以先读入彩色图,在转换为灰色图 color_1 = cv2.imread('figures/img_1.jpg') gray_1 = cv2.cvtColor(color_1, cv2.COLOR_BGR2GRAY) cv2.imshow('gray_1', gray_1) cv2.waitKey() #读到图片不存在时,加入判断语句,如果为空,做异常处理 img_2 = cv2.imread('figures/img_2.jpg') if img_2 == None: print('Fail to load image!') ''' ''' #图片的矩阵变换 #做卷积的时候,需要对不同通道应用卷积,这时:(height,width,channel)---> (channel,height,width) img = cv2.imread('figures/img_1.jpg') cv2.imshow('img', img) print(img.shape) cv2.waitKey() img_1 = img.transpose(2, 0, 1) #cv2.imshow('img_1', img_1) #转换之后不能再显示,执行会出错 print(img_1.shape) #cv2.waitKey() #扩展维度,例如--->(batch_size, channels, height, width) #预测单张图片,加一列作为图片的个数 img_2 = np.expand_dims(img, axis=0) print(img_2.shape) #(1, 480, 854, 3) #训练阶段构建patch---> (batch_size, channels, height, width) data_list = [] images = glob.glob('D:/PycharmProjects/image2video/blackswan/*.png') for imageName in images: im = cv2.imread(imageName) data_list.append(im) data_arr = np.array(data_list) print(data_arr.shape) #(50, 480, 854, 3) ''' ''' #图片归一化 #opencv读入的图片矩阵数值是0-255,有时我们需要对其进行归一化处理 img = cv2.imread('figures/img_1.jpg') print(img.dtype) #unit8 print(img) img_1 = img.astype("float") / 255.0 #img为unit8,需要先转换为float型 print(img_1.dtype) #float64 print(img_1) # 存储图片 cv2.imwrite('img_2.jpg', img_1) img_3 = img_1 * 255 #要得到可视化的图片,需要乘以255还原 cv2.imwrite('img_3.jpg', img_3) # BGR---->RGB,opencv读入的图片通道排列是BGR,而不是RGB img_4 = cv2.imread('figures/img_1.jpg') img_4 = cv2.cvtColor(img_4, cv2.COLOR_BGR2RGB) #访问像素 gray = cv2.cvtColor(img_4, cv2.COLOR_BGR2GRAY) print(img_4[10,10]) #3channels print(gray[10, 10]) #1channel img_4[10, 10] = [255, 255, 255] #修改像素值 gray[10,10] = 255 print(img_4[10,10]) #----->[255,255,255] print(gray[10,10]) #----->255 #ROI操作(提取感兴趣的区域) roi = img_4[200:550,100:450,:] cv2.imshow('roi',roi) cv2.waitKey() ''' #通道操作 #分离通道 img_5 = cv2.imread('figures/img_1.jpg') b, g, r = cv2.split(img_5) print(b) #[[]] print(img_5) #[[[]]] #合并通道 img_6 = cv2.merge((b, g, r)) print(img_6)img_5[:, :, 2] = 0 print(img_5) cv2.imshow('img5', img_5) cv2.waitKey()
python-opencv的一些基础操作相关推荐
- [python opencv 计算机视觉零基础到实战] 十、图片效果毛玻璃
一.学习目标 了解高斯模糊的使用方法 了解毛玻璃的图片效果添加 了解如何自己做一个噪声图片 上一篇:[python opencv 计算机视觉零基础到实战] 九.模糊 如有错误欢迎指出~ 二.了解模糊与 ...
- [python opencv 计算机视觉零基础到实战] 八、ROI泛洪填充
一.学习目标 了解什么是ROI 了解floodFill的使用方法 如有错误欢迎指出~ 目录 [python opencv 计算机视觉零基础到实战] 一.opencv的helloworld [[pyth ...
- [python opencv 计算机视觉零基础到实战] 七、逻辑运算与应用
一.学习目标 了解opencv中图像的逻辑运算 了解opencv中逻辑运算的应用 目录 [python opencv 计算机视觉零基础到实战] 一.opencv的helloworld [[python ...
- [python opencv 计算机视觉零基础到实战] 三、numpy与图像编辑
一.学习目标 了解图片的通道与数组结构 了解使用numpy创建一个图片 了解使用numpy对图片的一般操作方法 目录 [python opencv 计算机视觉零基础到实战] 一.opencv的hell ...
- 【python opencv 计算机视觉零基础到实战】二、 opencv文件格式与摄像头读取
一.学习目标 了解图片的结构属性 了解如何捕获视频 了解waitkey的使用方法 目录 [python opencv 计算机视觉零基础到实战] 一.opencv的helloworld [[python ...
- [python opencv 计算机视觉零基础到实战] 一 opencv的helloworld
前置条件 说明:本系列opencv实战教程将从基础到实战,若只是简单学习完python也可以通过该教程完成一般的机器学习编程:文中将会对很多python的基础内容进行讲解,但由于文章定位的原因将不会赘 ...
- [python opencv 计算机视觉零基础到实战] 十一找到图片中指定内容
一.学习目标 了解图片内容定位方法matchTemplate使用 了解minMaxLoc方法使用 上一篇<[python opencv 计算机视觉零基础到实战] 十.图片效果毛玻璃> 如有 ...
- [python opencv 计算机视觉零基础到实战] 六、图像运算
一.学习目标 了解opencv中图像运算的方法 了解opencv中图像运算的运用 如有错误欢迎指出~ 二.了解OpenCV中图像运算的运用 目录 [python opencv 计算机视觉零基础到实战] ...
- [python opencv 计算机视觉零基础到实战] 四、了解色彩空间及其详解
一.学习目标 了解什么是色彩空间 了解opencv中色彩空间的转换 目录 [python opencv 计算机视觉零基础到实战] 一.opencv的helloworld [[python opencv ...
- python 新建文件 hdfs_python基础操作以及hdfs操作
一.前言 作为一个全栈工程师,必须要熟练掌握各种语言...HelloWorld.最近就被"逼着"走向了python开发之路,大体实现的功能是写一个通用类库将服务器本地存储的文件进行 ...
最新文章
- Redhat linux5.5下Oracle 10g 安装配置手册一
- Leetcode 208. 实现 Trie (前缀树) 解题思路及C++实现
- 九十六、双指针和滑动窗口算法模板
- python爬虫实训心得_Python爬虫小结
- wxWidgets:支持插件的程序
- SAP中国招聘内部顾问,工作职责是做客户项目,ABAP开发
- MySQL流浪记(七)—— MySQL删除表数据
- tcmalloc编译
- python数据可视化柱状图_python数据可视化示例柱状图
- JNI_OnLoad
- 动态执行javascript代码
- 无法ping通别的计算机名,解决主机无法ping通问题
- 职称计算机个人档案号查询,干部人事档案编号在线查询
- 平面设计中都有哪些风格?常用的风格有哪些?
- 通灵学院|游戏设计研习9:游戏社群★(1500字)
- 论剑大数据技术,效率为王!天善智能掘金数据技术沙龙【上海站 12.09】
- Telemetry 基础
- 【C++入门基础篇】---- 万字解析
- Layui实现之登陆页面实现扩展模块
- 4.Deferred
热门文章
- css的sprites什么意思,CSS Sprites是什么
- 关于已上发布app,升级admob后,激励视频返回code=3 message=“No ad config“
- 第五章 政策问题与议程设定
- java爬取堆糖所有头像(高质量版头像)
- python安装失败0x80070005_win10下载安装软件时提示“0x80070005-拒绝访问”
- Python学习笔记(01 Hello World的条件输出 02 数值运算)
- js复制一个数组(浅复制、深复制)
- 【云存储】IOPS概念及测试方法
- Unity3D | 经典小游戏Pacman
- UNITY设计一款简单的3d射击小游戏(虚拟现实大作业)