1、opencv和matplotlib的RGB颜色问题
最近在同一个程序中用了matplotlib中的plt.imshow()函数,和opencv中的cv2.imwrite()函数,发现两个库对RGB颜色的翻译不同。比如(0,0,255)在plt中翻译为蓝色,在cv2中翻译为红色。
应该是两个函数对红绿蓝三原色的解释顺序不一样吧。具体顺序差异没有去研究,但应该有迹可循。
2、Image = cv2.drawContours(canvas, contours, -1, (0,0,255), 1)
opencv的drawContours函数中的canvas参数相当于一块画布(所以我将其命名为canvas),把contours的内容画在canvas上。
画笔颜色是(0,0,255)(也可以是其他颜色,总之此处是一常量,定义画笔颜色);
画笔的粗细用“1”(也可以是2,3,4,5,...)描述;
“-1”定义了画contours中的哪些轮廓(contours中所有轮廓都有对应编号),取-1时表示画所有编号的轮廓,取其他整数时表示画该整数编号对应的轮廓。
画布canvas必须是三维的(是不是RGB的还有待考证),否则显示异常。
3、python2和python3中range(a,b,c)的差异
在python2中,range(a,b,c)返回起始为a,末尾为b-1,间距为c的等差list;
在python3中,range(a,b,c)返回range类常量,需要list(range(a,b,c))转换后才能生成和python2中相同的list。