python opencv3 使用numpy访问图像数据
1 # coding:utf8
2 import cv2
3
4 """
5 将bgr在(0, 0)处改为白色像素
6
7 0号为green 1号为blue 2号为red
8 img的每一个位置存一个 3个长度的向量 分别表示gbr
9 """
10 # img = cv2.imread("../data/mm2.jpeg")
11 # print(img[0, 0]) # [49 65 11]
12 # img[0, 0] = [255, 255, 255]
13 # cv2.imshow("", img)
14 # cv2.waitKey(0)
15
16
17 """
18 将坐标(150, 120) 的蓝色值改为255
19
20 建议使用itemset函数完成, 这能避免访问原始索引
21 """
22 # img = cv2.imread("../data/mm2.jpeg")
23 # print(img.item(150, 120, 0)) # 打印出这个坐标的blue值
24 # cv2.imshow("", img)
25 # img.itemset((150, 120, 0), 255) # 将这个位置的blue值设为255
26 # print(img.item(150, 120, 0)) # 打印这个坐标的blue值
27
28
29 """
30 将图像所有的green值都设置为0
31
32 不推荐使用循环,,使用索引方式能提高程序实现的效率
33 """
34 # img = cv2.imread("../data/mm1.jpg")
35 # img[:, :, 1] = 0
36 # cv2.imshow("", img)
37 # cv2.waitKey(0)
38
39
40 """
41 将某个区域与变量绑定,将值分配给第二个区域
42 """
43 # img = cv2.imread("../data/mm3.jpg")
44 # my_roi = img[0: 100, 0:100] # 选定宽和高都是0到100的区域为感兴趣的区域
45 # img[300: 400, 300: 400] = my_roi # 将my_roi区域的值赋给 宽和搞300到400像素的位置
46 # cv2.imshow("", img)
47 # cv2.waitKey()
48
49 """
50 查看图像的一些属性
51 shape: 宽度 高度 和 通道数
52 size: 图像像素的大小
53 datatype: 图像的数据类型 一般为无符号整型
54 """
55 img = cv2.imread("../data/mm3.jpg")
56 print(img.shape) # (750, 1000, 3)
57 print(img.size) # 2250000
58 print(img.dtype) # uint8