计算机视觉基础
1. 数字图像的基本概念
-
像素(Pixel):图像的最小构成单元,每个像素存储亮度或颜色信息。
-
灰度图像:每个像素是 0(黑)~255(白) 的标量值(8位无符号整数)。
-
彩色图像:每个像素是三维向量,包含 R(红)、G(绿)、B(蓝) 三个通道的值,每个通道范围也是 0~255。
2. 图像的数学表示
灰度图像
彩色图像
数据维度:height × width × channels
对于灰度图像channels为1。
对于彩色图像channels为3。
3.将图像转换成结构化数组
1.读取图像
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('1.jpeg')
2.显示灰度图像
img = img[100:600,100:900]
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
plt.imshow(img_gray, cmap='gray')
plt.show()
3.将图像转换成25 * 40
img_gray_small = cv2.resize(img_gray,(40, 25))
plt.imshow(img_gray_small, cmap='gray')
plt.show()
4.检查像素值
print(img_gray_small)
[[251 252 252 252 253 253 253 253 254 254 254 254 254 254 254 254 254 254254 255 255 255 255 255 255 255 255 255 255 249 205 201 182 193 215 199200 192 213 250][250 248 251 252 253 253 253 253 254 254 254 254 254 254 254 254 254 254254 254 254 254 254 255 255 255 255 255 255 252 193 229 234 184 184 176217 178 233 244][222 205 226 238 237 253 253 253 253 254 254 254 254 254 254 254 254 254242 252 254 254 254 254 254 255 255 255 255 253 239 227 243 229 216 166231 205 214 250][221 238 235 228 199 73 47 42 138 91 74 78 237 254 254 254 254 253232 245 248 250 250 253 254 250 253 255 255 251 240 246 250 237 241 206213 229 212 252][226 234 229 169 45 151 239 33 52 47 65 61 51 193 253 254 246 231223 218 253 251 225 240 216 238 235 242 254 250 252 254 251 230 244 232227 243 245 248][223 230 227 230 223 215 232 248 42 46 40 37 64 69 66 238 187 133110 120 167 120 242 227 222 242 240 242 237 246 251 252 252 237 249 157241 250 252 251][161 233 233 235 224 230 204 237 237 205 45 56 43 32 36 123 140 112126 121 134 116 116 214 220 220 229 235 222 231 247 245 254 242 247 206237 246 248 227][126 198 234 235 193 185 161 216 223 208 155 228 70 156 131 62 93 105130 159 157 141 83 203 219 241 237 198 222 233 215 246 252 241 195 187214 231 204 183][226 222 233 235 240 150 148 156 210 220 201 214 170 250 65 81 97 106
...135 159 143 136][128 137 146 147 166 157 147 143 167 177 172 173 173 195 190 225 234 237231 241 230 242 240 237 233 240 239 235 168 224 219 233 190 183 177 186174 162 160 145]]
5.彩色图像
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('1.jpeg')
img = img[100:600,100:900]
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img)
plt.show()
print(img.shape)
# (500, 800, 3)
6.打印右下角3 * 3
crop = img[-3:,-3:]
print(crop)
'''
[[[ 80 152 86][ 77 148 82][ 74 146 80]][[ 82 153 87][ 81 150 87][ 79 148 85]][[ 81 151 81][ 88 154 90][ 88 154 90]]]
'''
plt.imshow(crop)
plt.show()