【LSP】opencv笔记——像素基础操作

忘痕.   ·   发表于 3个月前   ·   编程代码

四、图像基础
1、像素
a. 什么是像素?
像素是构成图像的基本要素。

在灰度图中,每一个像素值都是位于0–255中的整数。数值越小,像素越暗;数值越大,像素的亮度也越大。数值为0则代表黑色,数值为255则代表白色。在灰度图中,往往只需要一个字节来储存每一个像素点。

在彩色图中,每个像素都以RGB的形式呈现。红、绿、蓝分别占据一个字节的空间,因此每个像素占据3字节的存储空间,通常以元组的形式表示。如:

Black(黑色) : (0, 0, 255) White(白色) : (255, 255, 255) Red(红色) : (255, 0, 0)

Green(绿色) : (0, 255, 0) Blue(蓝色) : (0, 0, 255) Aqua(浅绿色) : (0, 255, 255)

Fuchsia(紫红色) : (255, 0, 255) Maroon(褐红色) : (128, 0, 0) Navy(藏青色) : (0, 0, 128)

Olive(橄榄绿) : (128, 128, 0) Purple(紫红色) : (128, 0, 128) Teal(深青色) : (0, 128, 128)

Yellow(黄色) : (255, 255, 0)

b. 坐标系
像素坐标系:纵轴为x(row),横轴为y(colomn),这与我们熟知的空间坐标系不同,容易混淆,需要细细区分。

注意:Python语言的索引从0开始。

2、像素操作
老规矩,还是先放一段源代码。

a. 源代码展现
getting_and_setting.py

(From Practical Python and OpenCV, 3rd Edition)

b. 代码解释
Line 1-9

相信没什么好解释的,导入所需的包并且解析命令行参数,忘了的可以回顾一下上节课的笔记O(∩_∩)O~

Line 10

更改第一个像素点的颜色为红色并重新打印。

Line 18-19

3、查看运行结果

结果显示了刚刚我们要求打印的修改前和修改后的像素点RGB以及三幅图像。

仔细观察,发现名为"Corner"的窗口中,图像左上角的一个小点变成了红色(就是我们修改的位置为[0, 0]的像素)。

4、关于Numpy
a. Why Numpy?
虽然Python自带了创建数组的功能,但采用Numpy会使我们的代码计算效率大大提高。

b. Numpy的数组切片
Numpy的数组切片为无复制切片,当对切片进行赋值操作时,原数组的数值也会发生变化,那么该如何将数组中的部分数据完全复制到一个新数组呢?

浅拷贝与深拷贝
浅拷贝:Numpy里的切片类似于C语言里的指针,属于浅拷贝。

1 Reply   |  Until 2个月前 | 922 View

天使的,吻痕
发表于 3个月前

你好问下有opencv软件嘛

评论列表

  • 加载数据中...

编写评论内容
LoginCan Publish Content