自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 重投影与重投影误差

解释:三维空间的点映射到二维图像中再转换为像素坐标系,就能得到像素坐标p1,p2.通过左右相机图像中的特征点进行三角定位。就能算出三维空间中的点的坐标(由于误差的存在,所以计算出来的空间点的坐标与实际真实的坐标存在一定差异)。再将计算出的三维空间中的点的坐标进行第二次投影。两次投影的误差就是重投影误差。

2022-09-20 09:04:19 2770 1

原创 RANSAC基本原理与应用

N:样本个数 K:求解模型需要的最少的点的个数(对于直线拟合来说就是两个点,对于计算Homography矩阵就是四个点)1.随机选取K个点。2.对该K个点拟合模型(直线或曲线)。3.计算其他点到拟合模型的距离。距离小于阈值的点称为内点,大于阈值的称为外点。统计内点个数。4.重复M次(有专门的公式计算),选择内点最多的模型,该模型就是最优模型。

2022-09-15 14:38:27 319

原创 拉普拉斯金字塔

高斯金字塔G0层下采样后为G1,用G0减去G1的上采样,就得到了拉普拉斯层L0.

2022-09-15 10:27:12 298

原创 cv2.THRESH_OTSU详解

cv2.THRESH_OTSU详解

2022-04-13 09:31:42 6528

转载 弗里曼(Freeman)链码

参考链接定义:任选一个像素点作为起始点,与其相邻的像素分别在 8 个不 同 的 位 置上, 给它们赋予方向值 0~7(如图 1), 称为0~7 位链码方向值, 一个线条可以用Freeman 链码 的 码值串来表示称为该线条图形的链码。如图 2,给出一个9 ×9 的点阵图, 其中一条线段, S 为起始点, E 为终点,此线段可做如表示为 L = 43322100000066。...

2021-11-02 17:05:42 2831

原创 边界跟踪----摩尔边界跟踪算法

参考链接基本思想: (1)从一个封闭空间的左上角像素点开始,如下图中的p1点,以该点为起始点。从该起始点的领域的空白像素点,以逆时针方向寻找,直到找到下一个边界点(图中为P2)。2.每次遇到黑色像素点(即边界点),将它设置为当前边界像素点,然后原路返回到先前到达的白色像素,以顺时针方向搜索当前点的8邻域内的每一个像素,直到遇到下一个黑色像素。3,重复步骤2,直到第二次访问到初始边界点,终止。在整个运行过程走过的黒色像素就是目标的边界像素。...

2021-11-02 16:36:11 1265 1

转载 用分水岭算法实现图像分割

参考链接

2021-10-30 20:14:29 463

原创 区域分离与合并

参考链接参考链接2区域分割的基本概念:反复进行拆分和聚合以满足限制条件的算法令R表示整幅图像区域并选择一个谓词P(p是一个判断条件)。对R进行分割的一种方法是反复将分割得到的结果图像再次分为四个区域,直到对任何区域Ri,有P(Ri)=TRUE。这里是从整幅图像开始。如果P(R)=FALSE,就将图像分割为4个区域。对任何区域如果P的值是FALSE.就将这4个区域的每个区域再次分别分为4个区域,如此不断继续下去。这种特殊的分割技术用所谓的四叉树形式表示最为方便(就是说,每个非叶子节点.

2021-10-29 11:19:29 424

转载 区域生长算法

参考链接原理区域生长算法的基本思想是将有相似性质的像素点合并到一起。对每一个区域要先指定一个种子点作为生长的起点,然后将种子点周围邻域的像素点和种子点进行对比,将具有相似性质的点合并起来继续向外生长,直到没有满足条件的像素被包括进来为止。这样一个区域的生长就完成了。这个过程中有几个关键的问题:a> 给定种子点(种子点如何选取?) 种子点的选取很多时候都采用人工交互的方法实现(即手动选择种子),也有用其他方式的,比如寻找物...

2021-10-29 10:03:14 194

转载 使用Otsu方法的最优全局阈值处理

参考链接

2021-10-28 12:07:58 274

原创 灰度阈值处理

参考人们就想出了一个全局的自适应的阈值处理:基本的过程为:个人理解: 1.先设置一个T的初始值。 2.以T为分界线,灰度值大于T的像素组成G1,小于T的像素组成G2。 3.分别求出像素组G1,和像素组G2的灰度平均值m1,m2。 4.。。。。。 5.。。。。。。...

2021-10-27 09:37:49 1014

原创 边缘模型--

参考链接

2021-10-25 11:30:43 226

原创 图像分割--点、线、边缘检测基础

参考链接一、前言传统图像分割算法主要依靠的是图像灰度值的两个特性:不连续性和相似性不连续性:以灰度突变为基础分割一副图像,比如图像边缘;(边缘两侧的灰度一般是截然不同的) 相似性:根据一组预定义的准则将图像分割为相似的区域,比如阈值处理,区域生长,区域分裂,区域聚合。二、点、线和边缘检测点线和边缘通过利用图像灰度的局部变化来检测,而局部变化则用导数来检测。图a是一副图像,分别包括不同的实心物体、一条线与单个噪声点。从图像垂直方向上的中心拉一条水平线,分别记录水平线上的..

2021-10-24 20:50:58 856

原创 顶帽变换和底帽变换

参考链接参考链接2参考链接3顶帽操作和底帽操作是灰度图像所特有的,其原理是开操作将使峰顶消去,具体消去了多少呢,可以用原图减去开操作结果,这样就能得到其消去的部分,而这个过程成为顶帽操作,顶帽就是开操作消去的峰顶,这一部分对应于图像中较亮的部分,也叫白色顶帽。顶帽变换是将原图中的那些比临近点都要亮的像素点分离处理,突出显示。同理,底帽操作是用闭操作的结果减去原图就得到被闭操作填充的谷底部分,这一部分对应于图像中较暗的部分,也叫黑色底帽。黑帽...

2021-10-18 17:43:19 1906

转载 形态学梯度(基本梯度、内部梯度、外部梯度、方向梯度)

参考链接1-形态学梯度通常所说形态学梯度(Morphological Gradient)是膨胀图像与腐蚀图像的之差得到的图像,也是基本梯度。数学表达式如下:梯度用于刻画目标边界或边缘位于图像灰度级剧烈变化的区域,形态学梯度根据膨胀或者腐蚀与原图作差组合来实现增强结构元素领域中像素的强度,突出高亮区域的外围。计算图像的形态学梯度是形态学重要操作,常常将膨胀和腐蚀基础操作组合起来一起使用实现一些复杂的图像形态学梯度。可以计算的梯度常见如下四种:基本梯度————基本梯度是用膨胀后的图像减去腐蚀后

2021-10-18 16:11:36 2850

原创 灰度腐蚀与膨胀,灰度开运算与闭运算

其他操作都与二值图像的腐蚀与膨胀一样,只是将图像与结构元素的原点重叠的像素变成0或者1改为替换成结构元中感兴趣区域的最大值和最小值。腐蚀:膨胀操作与腐蚀相反,就是将腐蚀中的最小值改为最大值...

2021-10-18 15:40:43 1827

原创 形态学-----骨架

所谓骨架,可以理解为图像的中轴,一个长方形的骨架,是它的长方形上的中轴线,圆的骨架是它的圆心,直线的骨架是它自身,孤立点的骨架也是自身。在求一幅图像X的骨骼过程中应满足两个条件:第一,X应该有规律的缩小;第二,在X缩小的过程中,应当使X的连通性质保持不变的...

2021-10-18 11:36:57 460

原创 形态学-----细化

参考链接1参考链接先简单了解下干嘛用的,以后用的时候再仔细研究算法。基本概念“骨架”是指一幅图像的骨骼部分,它描述物体的几何形状和拓扑结构,是重要的图像描绘子之一。计算骨架的过程一般称为“细化”或“骨架化”,将图像的骨架提取出来的同时,保持图像细小部分的连通性,特别是在文字识别,地质识别,工件零件识别或图像理解中;通常,对我们感兴趣的目标物体进行细化有助于突出目标的形状特点和拓扑结构并且减少冗余的信息。细化算法:采取逐次去除边界的方法来进行的,不能破坏图像的连通性;逐次细化,当这一次的.

2021-10-18 10:49:21 1790

原创 一些基本的形态学算法-----边界提取,孔洞填充

边界提取参考链接

2021-10-12 16:40:16 577

原创 数字图像处理 击中击不中变换

参考链接

2021-10-11 15:17:25 956

原创 数字图像处理----开运算与闭运算

参考博文1.图像开运算(先腐蚀,再膨胀)图像开运算是图像依次经过腐蚀、膨胀处理后的过程。图像被腐蚀后,去除了噪声,但是也压缩了图像(原图中的前景也就变小了);接着对腐蚀过的图像进行膨胀处理,可以去除噪声,并保留原有图像(前景恢复,但是去除了噪声)。如上图所示,先经过腐蚀,再膨胀,原图的内容不变,但是噪点都被去除了。2 图像闭运算(先膨胀,后腐蚀)图像闭运算是图像依次经过膨胀、腐蚀处理后的过程。图像先膨胀,后腐蚀,它有助于关闭前景物体内部的小孔,或物体上的小黑点。如下图所示:..

2021-10-10 17:21:32 2579 1

原创 形态学图像处理----腐蚀与膨胀

参考网页腐蚀需要1原图,2核(就是通过它来进行腐蚀的)。假设原图如下图所示:(图一)(该图中的0组成一个中间间断的数字1)核一般有方框形的,X形的,菱形的。。。。。我这里DIY的核是3行3列的矩阵,样子如下:(图二:)接下来将核放到原图的左上角,如下图所示,进行紧密贴合:图三:图二中的核是一个三行三列的矩阵,矩阵中有0,有1(非零值)。0不用管,只关心1(非零值)。当我们的核盖在原图上之后就表明我只关心我核是1(非零值)在原图上对应的像素,也就是只关心...

2021-10-08 15:26:09 543

原创 直方图匹配(直方图规定化)

别人的代码:#include <opencv2\opencv.hpp>#include <iostream>using namespace cv;using namespace std;void drawHist(Mat &hist, int type, string name) //归一化并绘制直方图函数{ int hist_w = 512; int hist_h = 400; int width = 2; Mat histImage = Mat

2021-08-30 17:02:56 290

原创 直方图均衡化

别人的代码:#include<opencv.hpp>#include<iostream>using namespace std;using namespace cv;int main() { Mat src = imread("F://download//第三章图片//下载的图片//08f790529822720eeff980167ecb0a46f21fab23.jpg"); imshow("src", src); Mat gray, dst; cvtColo

2021-08-30 15:51:22 105

原创 直方图计算并绘制

别人的代码:先码上,以后再研究https://blog.csdn.net/wangjia2575525474/article/details/116304854?spm=1001.2014.3001.5501(原作者博文)#include <opencv2/opencv.hpp>#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/highgui/highgui.hpp"#include <iostream&

2021-08-30 11:37:23 195

原创 比特平面分层

别人的代码自己的注释:#include<opencv2/highgui/highgui.hpp>#include<opencv2/imgproc/imgproc.hpp>#include<iostream>using namespace std;using namespace cv;int b[8];void binary(int num){ for (int i = 0; i < 8; i++)//数组b[8]初始化 b[i] = 0;

2021-08-29 21:22:51 261

原创 灰度级分层

别人的代码与解析://#include "stdafx.h"#include <iostream>#include <opencv2\core\core.hpp>#include <opencv2\highgui\highgui.hpp>#include <opencv2\imgproc\imgproc.hpp>using namespace cv;using namespace std;int main(){ Mat srcI

2021-08-24 21:00:50 438

原创 分段线性变换

b别人的代码:自己加的注释,有些地方可能不准确//Mat src = imread("F://download//第三章图片//Fig0320(4)(bottom_left).tif");#include <iostream>#include <opencv2\core\core.hpp>#include <opencv2\highgui\highgui.hpp>#include <opencv2\imgproc\imgproc.hpp>u

2021-08-24 16:41:15 462

原创 第三章:对数变换

//对数变换cv::Mat LogTransform2(cv::Mat& src, double c) { if (src.channels() > 1) cv::cvtColor(src, src, COLOR_RGB2GRAY); cv::Mat dst; src.copyTo(dst);//使用copyTo函数可以得到一个复制的矩阵 dst.convertTo(dst, CV_64F); dst = dst + 1.0; ...

2021-06-10 16:03:14 444

原创 幂律(伽马)变换

#include <opencv2/opencv.hpp>#include <iostream>#include <math.h>using namespace std;using namespace cv;int main(){ //引入图像 Mat src, dst; src = imread("C:\\Users\\pc\\Pictures\\Camera Roll\\2.jpeg"); //伽马变换 imsho...

2021-06-08 11:38:06 436

原创 图像反转(即将图片白的变黑,黑的变白)数字图像处理

#include<iostream>#include <opencv2/opencv.hpp>#include<opencv2/highgui.hpp> //图形界面和视频图像处理的头文件图形界面和视频图像处理的头文件。#include<opencv2/imgproc.hpp>using namespace std;using namespace cv;//图像处理函数void function1(){ Mat src;//生成一...

2021-06-07 19:57:33 788

原创 C++引发的异常: 0xc0000005: 读取位置 0xcccccccc 时发生访问冲突

出现问题原因:指针指向了NULL地址,然后又访问了该指针所指向的地址。

2021-05-16 17:04:01 2760

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除