目的是进行一些简单的图像操作时不用导入包,只需应用一些python语法的小技巧即可。
1.下采样
在计算机视觉中对视频或者图片处理是像素级别的,而现在的视频图像质量比以往高了许多,基本都是1280*720起步了,这样在进行像素级别的处理时计算量太大,因此不得不减少计算量,下采样是常用的一种方法。
opencv中有函数可以调用来对图像进行下采样操作,
如果用python的话,不调用也能用一行代码搞定。
img_down = img[::2, ::2, :]
这行代码的意思是对img图片的行和列分别缩小1/2
两个冒号加个数字的原身是[start:en d:step],start表示索引的起始位置,end表示结束位置,step表示步长,这里没写就默认是全部
当然,这样写也有缺点,比如
- 当行列为奇数时
- 下采样之后的图像边缘会产生锯齿状导致图像失真
2.二维布尔模板来渲染二维彩色图像
在2D彩色图像上使用2D蒙版
>>> from skimage import data
>>> cat = data.chelsea()
>>> reddish = cat[:, :, 0] > 160
>>> cat[reddish] = [0, 255, 0]
>>> plt.imshow(cat)
3.BGR to RGB
用opencv读取图片是反常的BGR格式,想转为RGB还得调用它的函数bgr2rgb,下面提供一个code小技巧
img=img[:,:,::-1]
轻轻松松将BGR图片转为RGB图片
4.利用A数组对B数组排序
import numpy as np
a = np.array([0,1,3,2,6,4,5])
b = np.array([0,1,2,3,4,5,6])
print(b[np.argsort(a)])