本书针的读者是高校学生,科研工作者,图像处理爱好者。
对于这些人群,他们往往是带着具体的问题,在苦苦寻找解决方案。
为了一个小问题就让他们去学习C++这么深奥的语言几乎是不可能的。
而Python的悄然兴起给他们带来的希望,如果说C++是tex的话,那Python的易用性相当于word。
他们可以很快的看懂本书的所有代码,并可以学着使用它们来解决自己的问题,同时也能拓展自己的视野。
别人经常说Python不够快,但是对于上面的这些读者,我相信这不是问题,现在我们日常使用的PC机已经无比强大了,而且绝大多数情况下不会用到实时处理,更不会在嵌入式设备上使用。
因此这不是问题。
本书目录:目录I走进OpenCV101关于OpenCV-Python教程102在Windows上安装OpenCV-Python113在Fedora上安装OpenCV-Python12IIOpenCV中的Gui特性134图片134.1读入图像4.2显示图像4.3保存图像4.4总结一下5视频5.1用摄像头捕获视频5.2从文件中播放视频5.3保存视频6OpenCV中的绘图函数6.1画线6.2画矩形6.3画圆6.4画椭圆6.5画多边形6.6在图片上添加文字7把鼠标当画笔7.1简单演示7.2高级一点的示例8用滑动条做调色板8.1代码示例III核心操作9图像的基础操作9.1获取并修改像素值9.2获取图像属性9.3图像ROI9.4拆分及合并图像通道9.5为图像扩边(填充)10图像上的算术运算10.1图像加法10.2图像混合10.3按位运算11程序性能检测及优化11.1使用OpenCV检测程序效率11.2OpenCV中的默认优化11.3在IPython中检测程序效率11.4更多IPython的魔法命令11.5效率优化技术12OpenCV中的数学工具IVOpenCV中的图像处理13颜色空间转换5413.1转换颜色空间13.2物体跟踪13.3怎样找到要跟踪对象的HSV值?14几何变换14.1扩展缩放14.2平移14.3旋转14.4仿射变换14.5透视变换15图像阈值15.1简单阈值15.2自适应阈值15.3Otsu’s二值化15.4Otsu’s二值化是如何工作的?16图像平滑16.1平均16.2高斯模糊16.3中值模糊16.4双边滤波17形态学转换17.1腐蚀17.2膨胀17.3开运算17.4闭运算17.5形态学梯度17.6礼帽17.7黑帽17.8形态学操作之间的关系18图像梯度18.1Sobel算子和Scharr算子8718.2Laplacian算子19Canny边缘检测19.1原理19.1.1噪声去除19.1.2计算图像梯度19.1.3非极大值抑制19.1.4滞后阈值19.2OpenCV中的Canny边界检测20图像金字塔9420.1原理21OpenCV中的轮廓22直方图23图像变换24模板匹配25Hough直线变换26Hough圆环变换27分水岭算法图像分割28使用GrabCut算法进行交互式前景提取29理解图像特征30Harris角点检测31Shi-Tomasi角点检测&适合于跟踪的图像特征32介绍SIFT(Scale-InvariantFeatureTransform)33介绍SURF(Speeded-UpRobustFeatures)34角点检测的FAST算法35BRIEF(BinaryRobustIndependentElementaryFeatures)36.1OpenCV中的ORB算法37特征匹配38使用特征匹配和单应性查找对象39Meanshift和Camshift40.3OpenCV中的Lucas-Kanade光流41背景减除23841.1基础42摄像机标定43姿势估计44对极几何(EpipolarGeometry)45立体图像中的深度地图25945.1基础46K近邻(k-NearestNeighbour)47支持向量机48K值聚类49图像去噪50图像修补51使用Haar分类器进行面部检测
2025/12/10 3:40:07 4.85MB python opencv
1
针对中值滤波器降低图像分辨率的缺点,提出一种改进的中值滤波算法,即在中值滤波前进行边缘判断。
首先判断象素是否是边缘,是则不进行变换,直接将该像素值输出。
反之则进行中值滤波,将中值滤波后的值输出。
实验表明,该算法对图像进行中值滤波时保存了图像的边缘细节。
2025/12/8 16:15:45 491KB 中值滤波
1
HDR(HighDynamicRange,高动态范围)是一种图像后处理技术,是一种表达超过了显示器所能表现的亮度范围的图像映射技术。
HDR技术能够很好地再现现实生活中丰富的亮度级别,产生逼真的效果。
HDR已成为目前游戏应用不可或缺的一部分。
通常,显示器能够显示R、G、B分量在[0,255]之间的像素值。
而256个不同的亮度级别显然不能表示自然界中光线的亮度情况。
比如,太阳的亮度可能是一个白炽灯亮度的几千倍,是一个被白炽灯照亮的桌面的亮度的几十万倍,这远远超出了显示器的亮度表示能力。
如何在有限的亮度范围内显示如此宽广的亮度范围,正是HDR技术所要解决的问题。
2025/11/13 14:46:05 506KB HDR Camera
1
为解决多通道光谱图像数据成像过程中更换滤光片造成的几何畸变问题,研究了一种基于快速稳健特征(SURF)与最大子矩阵的多通道光谱图像配准方法。
利用SURF算法提取了多通道光谱图像的特征,经过透视变换得到初步配准图像。
针对配准后图像边缘出现零像素值无效区域的问题,提出了通过最大子矩阵检测图像中最大内接矩形的方法,去掉了无效边缘区域,最大化地保留了有效区域信息。
对壁画的多通道成像数据进行了实验。
结果表明,所提方法在图像尺度与亮度变化方面具有更好的稳健性,能够避免其他配准方法中无效区域对后续光谱重建与颜色复原的影响,在配准精度、信息最大化保留、时间效率方面也具有更好的性能。
2025/10/5 11:42:46 10.91MB 光谱学 几何畸变 图像配准 光谱图像
1
2019年研究生复试测绘遥感信息工程国家重点实验室实验操作使用C++或Java,在已经形成的框架中调试和编制程序,完成均值滤波算法。
均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了以目标像素为中心的周围像素,用模板中的全体像素的平均值来代替原来像素值。
1
代码分为read_can_use.m和main_can_ues.m先运行read_can_use.m读取图片的像素值,使用奇异值分解的方法得到对应的特征。
程序预设了只读取前5个人的人脸图片,可以自己改成最多15个人。
然后运行main_can_use.m,程序会输出112323,每个数字代表一张图片最有可能的识别类别(就是人的编号)。
对每个人的11张图片,取前7张训练网络,后4张测试网络,取前5个人进行实验。
所以共有35个训练样本,20个测试样本。
比如输出的结果是111122123333…..,因为每4个数字是属于同一个人的,前四个都是1则都预测正确,第二组的4个数字2212中的那个1就是预测错误(本来是2预测成了1)。
由于参数的随机初始化,不保证每次的结果都相同。
2025/4/25 5:01:34 1.39MB 神经网络 人脸识别
1
Ostu方法又名最大类间差方法,通过统计整个图像的直方图特性来实现全局阈值T的自动选取,其算法步骤为:1)先计算图像的直方图,即将图像所有的像素点按照0~255共256个bin,统计落在每个bin的像素点数量2)归一化直方图,也即将每个bin中像素点数量除以总的像素点3)i表示分类的阈值,也即一个灰度级,从0开始迭代4)通过归一化的直方图,统计0~i灰度级的像素(假设像素值在此范围的像素叫做前景像素)所占整幅图像的比例w0,并统计前景像素的平均灰度u0;
统计i~255灰度级的像素(假设像素值在此范围的像素叫做背景像素)所占整幅图像的比例w1,并统计背景像素的平均灰度u1;
5)计算前景像素和背景像素的方差g=w0*w1*(u0-u1)(u0-u1)6)i++;
转到4),直到i为256时结束迭代7)将最大g相应的i值作为图像的全局阈值
2025/4/13 20:54:49 3KB OSTU 多阈值分割 MATLAB
1
这是我用Matlab的HDLCoder工具,然后结合Altera的CycloneII芯片FPGA视频图像开发平台仿真调试,这是最终版的源代码。
为省去大家纠结的痛苦,请注意:pixelin是像素输入;
x_in,y_in分别是像素点坐标位置;
clkenble是时钟使能;
width,height分别是图像的宽和高;
pixelout是输入像素点对应的均衡化因子,用它*255/(width*height)就是均衡化后的像素值;
2024/11/21 11:49:43 16KB FPGA图像处理 verilog HDL直方图
1
利用形心计算公式,通过像素值遍历,求出形心
2024/11/13 14:44:03 3.9MB 图像 二值化
1
对直方图进行均衡化处理的源代码:把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。
对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。
把给定图像的直方图分布改变成“均匀”分布直方图分布。
2024/11/5 11:40:05 152KB 直方图均衡化 图像处理 Matlab 源代码
1
共 29 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡