opencv numpy PIL联系与杂谈

 没写的即还未写上

联系 

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()类似

你可能感兴趣的:(opencv,python,opencv,numpy,python)