OpenCV 的基本操作
图像输入输出模块 imgcodecs
读取图像文件
读取图片
1 | cv2.imread(path[, flag]) |
第二个参数指定图片被读取的方式:
cv2.IMREAD_COLOR: 读入彩色图像,默认模式;cv2.IMREAD_GRAYSCALE: 以灰度模式读入图像;cv2.IMREAD_UNCHANGED: 加载图像包含alpha通道。使用数字简约表示以上三种标记,分别为
1,0或-1。
1 | import cv2 |
读取失败返回 None
读取照片的高度与宽度
1 | import cv2 as cv |
保存照片
1 | imwrite(filename,img[,params)->retval |
1 | import cv2 as cv |
OpenCV 界面编程
新建窗口函数
1 | namedWindow(winname[,flags]) |
flags
cv2.WINDOW_AUTOSIZE 窗口大小自动适应
cv2.WINDOW_NORMAL
1 | import cv2 as cv |
单窗口显示多图片
利用 numpy 的 hstack 函数合并行数相同的矩阵数组
1 | import cv2 as cv |
销毁窗口
cv2.destroyWindow(winname)
cv2.destroyAllWindows(winname)
cv2.resizeWindow(winname,width,height)
1 | import cv2 as cv |
鼠标事件
OpenCV 使用 setMousecallback 设定
1 | //设置回调函数 |
鼠标事件 event
enum
{
EVENT_MOUSEMOVE =0, //鼠标移动
EVENT_LBUTTONDOWN =1, //按下左键
EVENT_RBUTTONDOWN =2, //按下右键
EVENT_MBUTTONDOWN =3, //按下中键
EVENT_LBUTTONUP =4, //放开左键
EVENT_RBUTTONUP =5, //放开右键
EVENT_MBUTTONUP =6, //放开中键
EVENT_LBUTTONDBLCLK =7, //左键双击
EVENT_RBUTTONDBLCLK =8, //右键双击
EVENT_MBUTTONDBLCLK =9, //中键双击
EVENT_MOUSEWHEEL =10, //滚轮滚动
};
鼠标事件 flags
enum
{
CV_EVENT_FLAG_LBUTTON =1, //左键拖拽
CV_EVENT_FLAG_RBUTTON =2, //右键拖拽
CV_EVENT_FLAG_MBUTTON =4, //中键拖拽
CV_EVENT_FLAG_CTRLKEY =8, //按住 CTRL 拖拽
CV_EVENT_FLAG_SHIFTKEY =16, //按住 Shift 拖拽
CV_EVENT_FLAG_ALTKEY =32 //按住 ALT 拖拽
};
1 | import cv2 as cv |
滑动条事件
1 | def createTrackbar(trackbarName, windowName, value, count, onChange): |
1 | import cv2 as cv |
