OpenCV基础入门

主要了解包括
1.简介
图像是人类视觉的基础,是自然景物的客观反映 。
图像分类
1.1 安装教程
如果是C++的话,可以参考这篇教程,
+vs 环境配置的博客-CSDN博客.dll
或者直接登录 - 官网,然后选择一个版本,点击下载即可 。
的话,则非常简单
pip安装
pip- == 3.4.2.17
测试
import cv2lena = cv2.imread("1.jpg")cv2.imshow("image",lena)cv2.waitKey(0)
扩展
pip--==3.4.2.17
1.2 目录解析
当我们下载.x的版本时,我们经常会发现,有着和两个文件夹 。
中还能看到.0最核心的头文件,可以把他们整体理解为一个大的组件 。
而我们主要关注的是这个文件夹 。
这里介绍几个常用的模块 。
通过一个目录文件,就可以粗略的对图像领域的知识有一个大致的了解 。
我个人的认为是,core模块是基础,而,gpu,ocl,video等则是辅助功能,最上层则是具体的应用了,可见3D立体匹配,图像校准,特征选择,机器学习,目标检测,去噪以及拼接等都是图像的应用领域 。
那么目录的解析就到这里了,接下来是对于的安装的教程 。
则是一个与人交互的终端,显示界面,严格上来说也算是上层应用,而作为的学习,我想首先是core,然后是各类应用 。辅助应用则是在应用过程中进行学习 。
1.3 优势
-
安装之前,还可以安装numpy,。
3.4.3 以上一些经典算法因为申请了版权而不能使用,新版本有一定的限制
2 高层GUI图形用户界面
主要用于图像的载入、显示和输出到文件的详细分析 。
2.1 读取图像
cv.imread(img, flag)'''参数-要读取的图像-读取的标志+ cv.IMREAD*COLOR:以彩色模式加载图片,任何图像的透明度都将被忽略 。这是默认参数 。+ cv.IMREAD*GRAYSCALE:以灰度模式加载图像+ cv.IMREAD_UNCHANGED:包括alpha通道的加载图像模式可以使用1,0或者-1来替代上面三个标志'''
C++
imread(const string& filename, int flags=1)/*参数:+ 文件名+ 标志位,以不同的颜色读取图片*/
2.2 显示图像
cv.imshow(name, img)'''参数-显示图像的窗口名称,以字符串类型表示-要加载的图像注意:在调用显示图像API后,要调用cv.waitKey()给图像绘制留下时间,否则窗口会出现无响应情况,导致图像无法显示出来 。'''#opencv中显示cv.imshow("image", img)cv.waitKey(0)# matplotlib中展示'''因为cv中采用BGR进行存储,这里需要转换成RGB的'''plt.imshow(img[:,:,::-1])plt.show()
C++
imshow(const string& winname, InputArray mat)'/*参数:+ 显示窗口的名称+ 显示的图像*///创建namedWindow()函数//如果只是简单使用窗口,imread和imshow就足够了,但是如果需要添加比如滑动条的创建等操作时,则需要使用namedWindow来先创建窗口 。void nameWindow(const string & winname, int flags=WINDOW_AUTOSIZE)//创建滑动条createTrackbar()//滑动条的使用int getTrackbarPos(const string& trackbarname, const string& winname)//opencv中的鼠标操作void setMouseVallback(conststring& winname, MouseCallback onMouse)
2.3 保存图像
cv.imwrite(name, img)'''参数:- 文件名,要保存在哪里- 要保存的图像'''
C++
bool imwrite(cosnt string& filename, InputArray img, const vector