没写的即还未写上
联系
1.点的格式
opencv:[列数(cols),行数(rows)],即[横坐标, 纵坐标]
numpy:
2.显示
cv2.imshow()---BGR
plt.imshow() ---RGB
img.show() -----RGB
3.转换
PIL.Image转Opencv (即转为numpy)
cv2_img = cv2.cvtColor(numpy.asarray(Img_img),cv2.COLOR_RGB2BGR)
np.array(默认情况下)会复制对象,而np.asarray除非必要,否则不会复制该对象。
Opencv转PIL.Image
pil_img = Image.fromarray(cv2.cvtColor(cv_img,cv2.COLOR_BGR2RGB))
opencv与numpy互转
opencv图像以numpy uint8格式存储,numpy数组要作为图像使用(如imshow显示)的话需要array.astype(np.uint8)
PIL与numpy互转
Image.fromarray(array)
array = numpy.asarray(image)
opencv
cv2.imread()默认读入BGR
图像平均值(mean()函数获取)表示图像整体的亮暗程度,越大越亮。
图像标准差(meanStdDev()函数获取)表示明暗变化对比度,越大,明暗变化越明显。
PIL
下载时pip install pillow, 导入时import PIL (大写)
PIL.Image.open()默认读入RGB
numpy
numpy数组的维数被称为轴,轴数称为秩。
np.min()、np.max():
b = np.array([[[1, 2, 3], [4, 5, 6]], [[2, 3, 4], [3, 65, 1]], [[1, 33, 2], [44, 55, 66]]])
b.min(k)就是b.min(axis=k),求数组第k个轴上投影求最小,即在0维的空间找各竖列最小值,组成一个新数组。
比如b.min(0)就是[[1 2 2],[3, 5, 1]]
第一个元素1是通过比较b[0][0][0]、b[1][0][0]和b[2][0][0]得到的
第二个元素2是通过比较b[0][0][1]、b[1][0][1]和b[2][0][1]得到的
……以此类推……
np.max()类似