个人笔记|数字图像处理(c++)
c++实现图像处理
hjxu2016
好记性不如烂笔头|
独乐乐不如众乐乐|
你的纠错与关注就是对我最大的支持
展开
-
图像中求点到直线的垂足
已知图像中线段的两个点,求另外一个点到这个点的垂足。一、垂足公式已知直线一般式方程时:设已知直线外一点坐标为(x0,y0)(x0,y0)(x0,y0),垂足坐标为(x,y)(x,y)(x,y),因为垂线与直线垂直,垂线斜率为kkk的负倒数,则可得方程:Ax+By+C=0(y−y0)/(x−x0)=B/A;Ax + By + C = 0\\(y - y0) / (x - x0) = B / A;Ax+By+C=0(y−y0)/(x−x0)=B/A;解方程可得垂足坐标为x=(B∗B∗x0−A∗原创 2020-12-23 17:41:44 · 9434 阅读 · 0 评论 -
数字图像处理(九)图像分割之canny边缘检测
本篇所有代码都是基于24位BMP图像。且本篇代码只能算canny边缘检测的思路,可能离标准的canny边缘检测还差点。1) 以低的错误率检测边缘,也即意味着需要尽可能准确的捕获图像中尽可能多的边缘。2) 检测到的边缘应精确定位在真实边缘的中心。3) 图像中给定的边缘应只被标记一次,并且在可能的情况下,图像的噪声不应产生假的边缘。算法步骤一、用一个高斯滤波器...原创 2018-06-20 15:12:11 · 5450 阅读 · 0 评论 -
关于高斯滤波器的核参数获取
转自https://blog.csdn.net/likezhaobin/article/details/68350491、图像滤波 在三维计算机视觉领域,通常对于二维图像的特征抽取是很关键的第一步,这主要包括抽取二维图像上的边缘、角点、纹理等。通常从这些被称为基元图的组成部分中,我们可以提取图像的以下特征: 1)不同物体边缘成像所带来的灰度跃变; 2)物体...转载 2018-06-20 13:56:39 · 17455 阅读 · 0 评论 -
数字图像处理(八)形态学处理之灰度级腐蚀、膨胀、开运算、闭运算、顶帽变换和底帽变换
本篇所有代码都是基于24位BMP图像一. 灰度级腐蚀运算灰度级腐蚀运算可以看成一种特殊的二维卷积运算,只不过用最小值运算代替了相关运算,用减法运算代替了相关运算的卷积操作。灰度腐蚀运算时逐点进行的,计算该点局部范围内各点与结构元素对应点的灰度差,并选取差的最小值,作为该点的腐蚀结果。(先赋值255,再赋值差的最小值)1.如果结构元素都是正的,则输出图像会比输入图像暗。我们设结构元素3*3,且值都是...原创 2018-06-19 20:10:39 · 15646 阅读 · 0 评论 -
数字图像处理(七)形态学处理之击中击不中变换、骨架提取
一. 击中击不中变换击中击不中变换是形状检测的一个基本工具,先看定义一般来说,设给定原图像X中包含A在内的多个不同物体,假设定位目标A,为此设置一个形状模板A,此时取一个比A稍大的B,且A不与B的边缘相交,令B1=A,B2=B-A;如下图所示:算法步骤一、开三个内存缓冲区,用来保存原图像数据,结构元素H对原图像的腐蚀结果,结构元素M对原图像补集的腐蚀结果二、保存原图像数据,用结构元素H对原图像腐蚀...原创 2018-06-19 18:59:59 · 12786 阅读 · 0 评论 -
图像分割之canny边缘检测
转载http://www.cnblogs.com/techyan1990/p/7291771.html1. 写在前面最近在做边缘检测方面的一些工作,在网络上也找了很多有用的资料,感谢那些积极分享知识的先辈们,自己在理解Canny边缘检测算法的过程中也走了一些弯路,在编程实现的过程中,也遇到了一个让我怀疑人生的BUG(日了狗狗)。就此写下此文,作为后记,也希望此篇文章可以帮助那些在理解Canny算法...转载 2018-06-19 14:30:59 · 8049 阅读 · 0 评论 -
数字图像处理(五)几何变换之图像平移、镜像、绕中心点旋转、缩放等
本文为参考这位https://blog.csdn.net/eastmount/article/details/46345299所做的一些笔记,文字部分复制粘贴,代码部分有所改进,增加了绕中心点旋转等 点运算对单幅图像做处理,不改变像素的空间位置;代数运算对多幅图像做处理,也不改变像素的空间位置;几何运算对单幅图像做处理,改变像素的空间位置,几何运算包括两个独立的算法:空间变换算法和灰度级插值算法...原创 2018-06-07 19:48:58 · 27475 阅读 · 14 评论 -
数字图像处理(十)图像分割之全局阈值处理、otsu阈值处理、多阈值处理、可变阈值处理、多变量阈值处理
本篇所有代码都是基于24位BMP图像一. 基本的全局阈值处理当图像的前景和背景相关的只方图之间存在一个相当清晰的波谷时,这个算法效果很好。这部分算法比较简单,由于时间关系,并没有写相关代码算法步骤:一、为全局阈值T选择一个初始的估计值(一般选平均灰度)二、用T分割该图像产生的像素组,G1为灰度值大于T的所有像素组成,G2为灰度值小于T的所有像素组成三、对G1和G2分别计算平均灰度值m1和m2,计算...原创 2018-06-21 22:16:36 · 12803 阅读 · 0 评论 -
数字图像处理(六)形态学处理之腐蚀、膨胀、开运算、闭运算
二值图像形态学运算时图像形态学运算的基础。二值图像形态学运算的过程就是在图像中移动结构元素,将结构元素与其下面重叠部分的图像进行交、并等集合运算。为了确定元素中的参照位置,一般把进行形态学运算时的结构元素的参考点称为原点,且远点可以选择在结构元素之中,也可以选择在结构元素之外。二值图像的形态学处理的基本运算有腐蚀、膨胀、开运算、闭运算,击中与击不中、骨架抽取等。注意,本文所有例子都是24位真彩色图...原创 2018-06-13 13:31:11 · 24888 阅读 · 2 评论 -
数字图像处理(四)图像增强之普通平滑、高斯平滑、laplacian、sobelprewitt锐化
本文参考https://blog.csdn.net/eastmount/article/details/46378783做的一些笔记,解决扫描行填充不为4的整数字节,出现白色斜线的问题,修补了一些bug,注意,文字算法部分为直接复制粘贴的,代码部分有所该进。 图像平滑是一种区域增强的算法,平滑算法有邻域平均法、中指滤波、边界保持类滤波等。在图像产生、传输和复制过程中,常常会因为多方面原因而被噪声...原创 2018-06-05 22:20:21 · 27517 阅读 · 0 评论 -
数字图像处理(三)灰度线性变化、非线性变化、阈值化、均衡化
转自https://blog.csdn.net/eastmount/article/details/46312145本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程《数字图像处理》及课件进行讲解,主要通过MFC单文档视图实现显示BMP图片点运算处理,包括图像灰度线性变换、灰度非线性变换、图像阈值化处理、图像均衡化处理等知识,并结合前一篇论文灰度直方图进行展示 。...转载 2018-05-22 15:53:12 · 20122 阅读 · 0 评论 -
MFC工具箱控件的一些用法
转自https://blog.csdn.net/qq_34174814/article/details/51419967控件工具箱: 2 图形控件(picture):常用于显示位图(Bitmap)和图标(Icon)3 静态文本(Static Text):用来在指定的位置显示特定的字符串,一般用来标识附近另一个控件的内容。显示在静态文本控件中的字符串一般不再改变,但是在需要的时候,也可以通过调用相应...转载 2018-05-21 16:36:19 · 1653 阅读 · 0 评论 -
数字图像处理(二)灰度、量化、采样
转自https://blog.csdn.net/eastmount/article/details/46010637本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程《数字图像处理》及课件进行讲解,主要通过MFC单文档视图实现显示BMP格式图片,并通过Bitmap进行灰度处理、图片采样和量化功能。 个人认为对初学者VC++6.0可能还是很值得学习的工...转载 2018-05-20 20:19:55 · 14361 阅读 · 2 评论 -
数字图像处理遇到的小问题
照搬代码,还是会出现一些小的问题,主要是由于环境引起的问题问题一:error C4703: 使用了可能未初始化的本地指针变量“xxx”以下问题转自https://blog.csdn.net/sinat_20265495/article/details/62056034问题分析:在VS2013创建项目时,会有一个勾选项,叫做“安全开发生命周期(SDL)检查”,这个东西是微软在VS2013新推出的东西...原创 2018-05-19 18:58:55 · 2117 阅读 · 0 评论 -
数字图像处理(一)利用MFC显示BMP图像
转自https://blog.csdn.net/eastmount/article/details/18238863本文主要是讲述《数字图像处理》系列栏目中的第一篇文章.主要详细介绍了BMP图片格式,同时使用C++和MFC显示BMP格式,主要结合自己的《数字图像处理》课程和以前的项目叙述讲解.一.BMP图片格式定义BMP文件格式是Windows操作系统推荐和支持的标准图像文件格式,是一种将内存或显...转载 2018-05-19 18:44:56 · 13550 阅读 · 4 评论 -
位、字节、字之间的关系
位:"位(bit)"是电子计算机中最小的数据单位。每一位的状态只能是0或1。 字节:8个二进制位构成1个"字节(Byte)",它是存储空间的基本计量单位。1个字节可以储存1个英文字母或者半个汉字,换句话说,1个汉字占据2个字节的存储空间。 字:"字"由若干个字节构成,字的位数叫做字长,不同档次的机器有不同的字长。例如一台8位机,它的1个字就等于1个字节,字长为8位。如果是一台16位机,那么,它...原创 2018-05-19 18:01:57 · 50144 阅读 · 1 评论 -
位图BITMAPINFOHEADER 与BITMAPFILEHEADER
转自https://blog.csdn.net/ke123456le/article/details/7908575位图BITMAPINFOHEADER 与BITMAPFILEHEADER 先来看BITMAPINFOHEADER,只写几个主要的 biSize包含的是这个结构体的大小(包括颜色表) biWidth和biHeight分别是图片的长宽 biPlanes是目标绘图设...转载 2018-05-18 13:38:33 · 2882 阅读 · 0 评论