Opencv实例练习
实例所用的函数可在另一篇文章查询: https://www.cnblogs.com/Zhouce/p/17867164.html
1、图像读取
1 import cv2 # 引入opencv库
2 import numpy as np # 引入numpy库
3 fn = "car.png"
4
5 # img_color = cv2.imread(fn,1) # 上下两种方式都是读取彩色图像的flag
6 img_color = cv2.imread(fn,cv2.IMREAD_COLOR)
7
8 # img_gray = cv2.imread(fn,0) # 上下两种方式都是读取灰色图像的flag
9 img_gray = cv2.imread(fn,cv2.IMREAD_GRAYSCALE)
10
11 # 获取图像大小
12 sp1 = img_color.shape
13 sp2 = img_gray.shape
14 print("img_color.shape = ",sp1) # 彩色图像三通道 : 高度(图像行数)、宽度(图像列数)、通道数
15 print("img_gray.shape = ",sp2) # 灰色图像两通道 : 高度(图像行数)、宽度(图像列数)
16
17 # # 创建窗口
18 # cv2.namedWindow('img_color')
19 # cv2.namedWindow('img_color')
20
21 # 显示图像
22 cv2.imshow('img_color',img_color)
23 cv2.imshow('img_gray',img_gray)
24
25 cv2.waitKey(0)


2、保存图像
1 import cv2
2
3 fn = "car.png"
4 img_gray = cv2.imread(fn,0)
5 sp1 = img_gray.shape
6
7 cv2.imshow('image',img_gray) # 显示灰色图像
8 cv2.imwrite("car_gray.png",img_gray) # 在当前文件夹下保存图像
9
10 cv2.waitKey(0)
11 cv2.destroyAllWindows()


3、缩放图像
# 第一种缩放图像的方法
1 import cv2
2 import numpy as np
3
4 fn = 'car.png'
5
6 img = cv2.imread(fn)
7
8 #指定目标图像的宽高
9 #图像不失真
10
11 # img_down_0 = cv2.resize(img,(150,150)) #
12 img_up_0 = cv2.resize(img,(500,500))
13
14 # cv2.imshow('carimg',img_down_0)
15 cv2.imshow('carimg',img_up_0)
16
17 # 图像失真
18 img_distortion = cv2.resize(img, (200, 300))
19 cv2.imshow('img_distortion', img_distortion)
20 cv2.waitKey(0)
21 cv2.destroyAllWindows()

# 第二种缩放图像的方法
1 import cv2
2 import numpy as np
3
4 fn = 'car.png'
5
6 img = cv2.imread(fn)
7
8 # 指定图像的比例因子(需要指出的是dsize必须要传参,None)
9 # 图像不失真
10 img_down_1 = cv2.resize(img,None,fx=0.75,fy=0.75)
11 img_up_1 = cv2.resize(img,None,fx=1.2,fy=1.2)
12 cv2.imshow('img_down-No distortion1', img_down_1)
13 cv2.imshow('img_up-No distortion1', img_up_1)
14 # 图像失真
15 img_distortion1 = cv2.resize(img,None,fx=0.75,fy=1.2)
16 cv2.imshow('img distortion1',img_distortion1)
17 cv2.waitKey(0)
18 cv2.destroyAllWindows()

1 import cv2
2 import numpy as np
3
4 fn = 'car.png'
5
6 img = cv2.imread(fn)
7
8 # 指定图像缩放方法
9 img_scale0 = cv2.resize(img, (150, 150), interpolation=cv2.INTER_AREA)
10 img_scale1 = cv2.resize(img, (450, 450), interpolation=cv2.INTER_CUBIC)
11 img_scale2 = cv2.resize(img, (450, 450), interpolation=cv2.INTER_LINEAR)
12 img_scale3 = cv2.resize(img, (150, 150), interpolation=cv2.INTER_NEAREST)
13
14 cv2.imshow('img_scale0',img_scale0)
15 cv2.imshow('img_scale1',img_scale1)
16 cv2.imshow('img_scale2',img_scale2)
17 cv2.imshow('img_scale3',img_scale3)
18
19 cv2.waitKey(0)
20 cv2.destroyAllWindows()
21 # 可选值包括cv2.INTER_NEAREST、cv2.INTER_LINEAR双线性插值法(默认)、cv2.INTER_AREA、cv2.INTER_CUBIC、cv2.INTER_LANCZOS4等

4、图像裁剪
1 import cv2
2
3 fn = "car.png"
4 car = cv2.imread(fn)
5 print(car.shape)
6
7 # 裁剪图像
8 cropped_car = car[25:190,50:300] # image[start_row : end_row , start_rol : end_rol]
9 cv2.imshow('original',car)
10 cv2.imshow('cropped',cropped_car)
11 cv2.waitKey(0)
12 cv2.destroyAllWindows()

5、色彩空间转换
1 # 颜色空间转换 cv2.cvtColor(img,flags)
2
3 import cv2
4 import matplotlib.pyplot as plt
5
6 img = cv2.imread("car.png")
7 # 利用plot函数画出图像并放置在一个窗口中显示
8 plt.subplot(3,3,1)
9 plt.imshow(img)
10 plt.axis('off')
11 plt.title('BGR')
12
13 # BGR变换RGB
14 img_RGB = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
15 plt.subplot(3,3,2)
16 plt.imshow(img_RGB)
17 plt.axis('off')
18 plt.title('RGB')
19
20 # 原图变换灰度图
21 img_GRAY = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
22 plt.subplot(3, 3, 3)
23 plt.imshow(img_GRAY)
24 plt.axis('off')
25 plt.title('GRAY')
26
27 # 变换HSV空间
28 img_HSV = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
29 plt.subplot(3, 3, 4)
30 plt.imshow(img_HSV)
31 plt.axis('off')
32 plt.title('HSV')
33
34 # 变换YCrCb空间
35 img_YcrCb = cv2.cvtColor(img, cv2.COLOR_BGR2YCrCb)
36 plt.subplot(3, 3, 5)
37 plt.imshow(img_YcrCb)
38 plt.axis('off')
39 plt.title('YcrCb')
40
41 # 变换HLS空间
42 img_HLS = cv2.cvtColor(img, cv2.COLOR_BGR2HLS)
43 plt.subplot(3, 3, 6)
44 plt.imshow(img_HLS)
45 plt.axis('off')
46 plt.title('HLS')
47
48 # 变换XYZ空间
49 img_XYZ = cv2.cvtColor(img, cv2.COLOR_BGR2XYZ)
50 plt.subplot(3, 3, 7)
51 plt.imshow(img_XYZ)
52 plt.axis('off')
53 plt.title('XYZ')
54
55 # 变换LAB空间
56 img_LAB = cv2.cvtColor(img, cv2.COLOR_BGR2LAB)
57 plt.subplot(3, 3, 8)
58 plt.imshow(img_LAB)
59 plt.axis('off')
60 plt.title('LAB')
61
62 # 变换YUV空间
63 img_YUV = cv2.cvtColor(img, cv2.COLOR_BGR2YUV)
64 plt.subplot(3, 3, 9)
65 plt.imshow(img_YUV)
66 plt.axis('off')
67 plt.title('YUV')
68 plt.show()

(2)
1 import cv2
2
3 img = cv2.imread('car.png')
4
5 img_BGR = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
6 img_HSV = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
7
8 cv2.imshow('origin_img',img)
9 cv2.imshow('BGR_img',img_BGR)
10 cv2.imshow('HSV_img',img_HSV)
11
12 cv2.waitKey(0)
13 cv2.destroyAllWindows()

Opencv实例练习的更多相关文章
- opencv实例一:显示一张图片
第一个简单的实例,显示一张图片: 1)代码如下 /*************************************************************************** ...
- AdaBoost算法原理及OpenCV实例
备注:OpenCV版本 2.4.10 在数据的挖掘和分析中,最基本和首要的任务是对数据进行分类,解决这个问题的常用方法是机器学习技术.通过使用已知实例集合中所有样本的属性值作为机器学习算法的训练集,导 ...
- opencv实例三:播放AVI格式视频
一.不带滚动条的视频读取播放. 1.原理介绍:视频的本质是一些静态的图像的集合,opencv可以不断读取视屏中的图片,显示,就可以实时的视频流进行处理了. 2.代码如下: /************* ...
- opencv实例二:缩放一张图片
1.知识补充 const char*, char const*, char*const的区别 事实上这个概念谁都有只是三种声明方式非常相似: Bjarne在他的The C++ Programming ...
- openCV实例:Canny边缘检测
http://blog.sina.com.cn/s/blog_737adf530100z0jk.html 在第一次使用openCV程序成功对图像进行打开后,现在开始试验第二个例程试验:Canny边缘检 ...
- OpenCV与QT联合开发示例
1.OpenCV及QT开发环境搭建 windows基于vs2017的opencv安装 windows下安装QT并与visual studio 2017搭建开发环境 2.工程创建 1.导入Qt项目 选择 ...
- OpenCV基础知识介绍
1.图像与矩阵 一般来说,图像是一个标准的矩形,有着宽度(width)和高度(height).而矩阵有着行(row)和列(column),矩阵的操作在数学和计算机中的处理都很常见且成熟,于是很自然的就 ...
- 【Android】Eclipse自动编译NDK/JNI的三种方法
[Android]Eclipse自动编译NDK/JNI的三种方法 SkySeraph Sep. 18th 2014 Email:skyseraph00@163.com 更多精彩请直接访问SkySer ...
- 从PyOpenCV到CV2
安装cv2 http://hyry.dip.jp/files/opencv.zip 采用cv2重写的<Python科学计算>中的实例程序 读者可以在下面的页面中搜索“opencv”,并根据 ...
- ubuntu ndk 开发
参考 https://developer.android.com/ndk/index.html 配置 下载android-ndk-r10d-linux-x86_64.bin ,运行自解压. ...
随机推荐
- SpringBoot3基础用法
目录 一.背景 二.环境搭建 1.工程结构 2.框架依赖 3.环境配置 三.入门案例 1.测试接口 2.全局异常 3.日志打印 3.1 日志配置 3.2 日志打印 四.打包运行 五.参考源码 技术和工 ...
- SpringBoot3集成RocketMq
标签:RocketMq5.Dashboard: 一.简介 RocketMQ因其架构简单.业务功能丰富.具备极强可扩展性等特点被广泛应用,比如金融业务.互联网.大数据.物联网等领域的业务场景: 二.环境 ...
- 全免费开源-国内搭建ChatGPT个人镜像站与维护全攻略
本教程收集于:AIGC从入门到精通教程汇总 全免费开源,仅需一个域名就可以部署国内的ChatGPT镜像版本. One-Click to deploy well-designed ChatGPT web ...
- CodeForces 1187E Tree Painting
题意:给定一棵\(n\)个点的树 初始全是白点 要求你做\(n\)步操作,每一次选定一个与一个黑点相隔一条边的白点,将它染成黑点,然后获得该白点被染色前所在的白色联通块大小的权值. 第一次操作可以任意 ...
- 从驾考科目二到自动驾驶,聊聊GPU为什么对自动驾驶很重要
"下一个项目,坡道起步." -- "考试不合格,请将车子开到起点,重新验证考试.你的扣分项是:起步时间超30秒:扣100分.行驶过程中车轮轧到边线:扣100分." ...
- FastGPT 接入飞书(不用写一行代码)
FastGPT V4 版本已经发布,可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景,例如联网谷歌搜索,操作数据库等等,功能非常强大,还没用过的同学赶紧去试试吧. 飞书相比同类产品算是 ...
- Apache(2.4.49 2.4.50)--目录遍历--命令执行--(CVE-2021-42013)&&(CVE-2021-41773)
Apache(2.4.49 2.4.50)--目录遍历--命令执行--(CVE-2021-42013)&&(CVE-2021-41773) 复现环境 采用Vulfocus靶场环境进行复 ...
- k8s 自动扩缩容HPA原理及adapter配置详解👑
大家好,我是蓝胖子,都知道,k8s拥有自动扩缩容机制HPA,我们能够通过配置针对不同的扩缩容场景进行自动扩缩容,往往初学者在面对其中繁多配置的时候会学了又忘记,今天我将会以一种不同的视角,结合api ...
- 基于AvaSpe 2048测定物体的光谱曲线
本文介绍基于AvaSpec-ULS2048x64光纤光谱仪测定植被.土壤等地物高光谱曲线的方法. AvaSpec是由荷兰著名的光纤光谱仪器与系统开发公司Avantes制造的系列高性能光谱仪,广 ...
- Redis系列内容完整版
@ 目录 Redis系列之_Redis介绍安装配置 第一章 redis初识 1.1 Redis是什么 1.2 Redis特性(8个) 1.3 Redis单机安装 1.3.1下载安装 1.3.2三种启动 ...