在这篇文章中,我们将说明数码单反相机DSLR(Digital Single Lens Reflex Camera)的各个技术方面.本文将说明焦距(focal length),f-stop,景深(depth of field),光圈(aperture),快门速度(shutter speed),ISO设置(ISO setting),图像稳定(image stabilization)和自动包围曝光( auto exposure bracketing). 数码单反相机(或单反相机--数码单反.单反.反光…
Summary:利用OpenCV中的LBF算法进行人脸关键点检测(Facial Landmark Detection) Author:    Amusi Date:       2018-03-20 Note:       OpenCV3.4以及上支持Facemark 原文:OpenCV实战:人脸关键点检测(FaceMark) PS:点击“阅读原文”,可以下载所有源码和模型,记得给star哦! 教程目录 测试环境 引言 Facemark API Facemark训练好的模型 利用OpenCV代码…
本文主要介绍基于OpenCV contrib中的quality模块实现图像质量评价.图像质量评估Image Quality Analysis简称IQA,主要通过数学度量方法来评价图像质量的好坏. 本文需要OpenCV contrib库,OpenCV contrib库的编译安装见: OpenCV_contrib库在windows下编译使用指南 本文所有代码见: OpenCV-Practical-Exercise 文章目录 1 OpenCV中图像质量评价算法介绍 1.1 相关背景 1.2 OpenC…
本文主要讲述利用OpenCV制作低成本立体相机以及如何使用OpenCV创建3D视频,准确来说是模仿双目立体相机,我们通常说立体相机一般是指双目立体相机,就是带两个摄像头的那种(目就是指眼睛,双目就是两只眼睛),这种双目摄像机模仿人的视觉,所以应用很广泛(主要是工业机器人视觉).双目摄像机也广泛应用于无人驾驶,比如特斯拉.图森未来,小鹏汽车在自家的无人驾驶汽车上都安载了立体相机,双目和多目的都有.另外双目视觉加上深度学习还蛮好水论文的.本文主要说的是低成本,实际上没人这样干,有专门的双目立体相机,…
本文主要介绍对极几何(Epipolar Geometry)与立体视觉(Stereo Vision)的相关知识.对极几何简单点来说,其目的就是描述是两幅视图之间的内部对应关系,用来对立体视觉进行建模,实际上就是一种约束条件,这样可以确定立体匹配时的最优解.对极几何是计算机视觉领域中一个基础概念,具体可以学习文章-对极几何(Epipolar).对极几何/极几何在各个坐标系(世界坐标系,观察坐标系,像素坐标系)相互转换中是十分重要的一个概念.立体视觉是一种很常用的计算机视觉技术,其目的是从两幅或两幅以…
目录 1 背景 1.1 什么是高动态范围(HDR)成像? 1.2 高动态范围(HDR)成像如何工作? 2 代码 2.1 运行环境配置 2.2 读取图像和曝光时间 2.3 图像对齐 2.4 恢复相机响应功能 2.5 合并图像 2.6 色调映射 2.7 工程代码 3 参考 在本教程中,我们将学习如何使用不同曝光设置拍摄的多张图像创建高动态范围图像(HDR). 1 背景 1.1 什么是高动态范围(HDR)成像? 大多数数码相机和显示器将彩色图像捕获或显示为24位矩阵.每个颜色通道有8位,一共三个通道,…
摘要 在机器视觉中,对于图像的处理有时候因为放置的原因导致ROI区域倾斜,这个时候我们会想办法把它纠正为正确的角度视角来,方便下一步的布局分析与文字识别,这个时候通过透视变换就可以取得比较好的裁剪效果. 本次实战,对于图像的矫正使用了两种矫正思路: 针对边缘比较明显的图像,使用基于轮廓提取的矫正算法. 针对边缘不明显,但是排列整齐的文本图像,使用了基于霍夫直线探测的矫正算法. 基于轮廓提取的矫正算法 整体思路: 图片灰度化,二值化 检测轮廓,并筛选出目标轮廓(通过横纵比或面积去除干扰轮廓) 获取…
目录 1 什么是曝光融合 2 曝光融合的原理 3 代码与结果 4 参考 本教程中,我们将了解使用OpenCV的Exposure Fusion(曝光融合). 1 什么是曝光融合 曝光融合是一种将使用不同曝光设置拍摄的图像合成为一张看起来像色调映射的高动态范围(HDR)图像的图像的方法.当我们使用相机拍摄照片时,每个颜色通道只有8位来表示场景的亮度.然而,我们周围世界的亮度理论上可以从0(黑色)到几乎无限(直视太阳).因此,傻瓜相机或移动相机根据场景决定曝光设置,以便使用相机的动态范围(0-255值…
将下面文档存为load_display_save.py #-*- coding:utf-8 -*- ap = argparse.ArgumentParser() ap.add_argument("-i", "--image", required = True, help = args = vars(ap.parse_args()) image1 = cv2.imread(args[ cv2.imshow( cv2.waitKey(0) cv2.imwrite( 详细…
参考资料: http://docs.opencv.org/modules/core/doc/xml_yaml_persistence.html #include "opencv2/opencv.hpp" #include <time.h> using namespace cv; using namespace std; int main(int, char** argv)     {     //打开yml文件,用来写入     FileStorage fs("t…