![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数字图像处理
zszszs1994
研究生在读...
展开
-
数字图像处理中的高通滤波和低通滤波
高通滤波:边缘提取与增强低通滤波:边缘平滑边缘区域的灰度变换加大,也就是频率较高。所以,对于高通滤波,边缘部分将被保留,非边缘部分将被过滤;对于低通滤波,边缘区域将被平滑过渡。转载 2016-09-19 14:24:11 · 24638 阅读 · 0 评论 -
k-means算法MATLAB和opencv代码
转自与http://blog.csdn.net/autocyz/article/details/46773143 该博客分两篇,第一篇讲解了K均值的原理,后一篇给出了实现的MATLAB代码和C++代码,还提供了聚类的效果。 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 功能:实现如何利用Kmeans聚类实现图像的分割; 时间:201转载 2017-05-15 10:44:27 · 634 阅读 · 0 评论 -
CxImage类型与Mat类互转
转自http://blog.csdn.net/liulina603/article/details/43053957CxImage转Mat CxImage img; uint8_t *buf=NULL; int32_t len=0; bool rs =img.Encode(buf,len,CXIMAGE_FORMAT_BMP); cv::Mat temp2;转载 2017-05-23 20:12:28 · 682 阅读 · 0 评论 -
基于OpenCV的图像配准之后的透视变换
在通过SIFT、SURF或者ORB进行特征点检测,生成了特征点和特征点描述子的vector后,如何进一步的进行对于图像的矫正。这个时候就用到了opencv的另外两个函数findHomography和perspectiveTransform。 findHomography是用来计算两张图像的单应性矩阵的。opencv的官方文档中有详细的使用说明: 前两个参数分别是通过之前的特征检测找到原创 2017-03-20 20:41:53 · 4206 阅读 · 1 评论 -
摄像机标定与三维重建
学习三维重建一段时间了,现在对于学到的东西做一下总结。1.标定对于三维重建的问题,首先要做的就是对于摄像机进行标定。对相机进行标定的主要目的是为了使拍摄的图片更加符合规范,可以更准确地进行后续的图像配准和三维重建。对于双目相机而言,标定就是为了求解相机的内外参数,然后将图像矫正为平行图像,还可以消除由于摄像机镜头带来的畸变。具体的细节部分就不讲了,可以自行查阅论文,都讲得很清楚。可以从此下载代原创 2017-03-03 20:45:47 · 3308 阅读 · 3 评论 -
OpenCV 可自动调整参数的透视变换
转载地址:http://blog.csdn.net/wangyaninglm/article/details/41869535?locationNum=1&fps=1在shiter大牛的基础之上,对于他的程序做了一定的修改。 首先,通过两个循环使得霍夫变换两个参数:角度的分辨率和点个数的阈值可以变换,这样就不必对于每一张图像都手动的设置阈值。其次,过滤掉了两个距离很近的直线,使得能够正确找到物体的转载 2016-11-22 17:53:43 · 5064 阅读 · 6 评论 -
螺钉 螺母 硬币三种物体的识别
对于区域增长和链码表的一个应用。其中实现了几个部分:可以在图像中画出外接矩形(通过区域增长找最左,最右,最上,最下这四个点。这个功能注释起来了),通过区域增长可以得到单个区域的面积,实现了对于多个物体进行链码跟踪。之后进行识别就很简单了,但是有一步没有实现。当两个物体粘连时,如何解决?#include<iostream>#include<gdal_priv.h>#include<list>#i原创 2016-11-21 18:54:24 · 1653 阅读 · 2 评论 -
图像的膨胀与腐蚀实现
#include <iostream>#include <string>#include "gdal_priv.h"using namespace std;//图像的膨胀//算法的实现依然有重复的地方,会造成空间和时间上的浪费,但是效果还可以,暂定如此,如有好的算法再进行改进void Expand(unsigned char* date,unsigned char* ExpandImage原创 2016-10-08 11:36:02 · 677 阅读 · 0 评论 -
二值图像查找边界,并对边界进行搜索,剔除小边界
通过二值图像查找边界代码://pImgData为输入的二值图像void TrackBoundary(unsigned char *pImgData, int nImgWidth, int nImgHeight){ //存储外边界 unsigned char *pBoudary = new unsigned char[nImgWidth * nImgHeight]; mem转载 2016-10-08 09:17:22 · 2458 阅读 · 0 评论 -
链码表到线段表的转换
不一定会用得到,先放在这里,供以后查阅 本段摘抄自左飞的数字图像处理原理与实践/********************************************************** * 链码表到线段表的转换* 参数:track为链码表,trackDot为线段表**********************************************************/转载 2016-10-08 08:54:12 · 385 阅读 · 0 评论 -
三线性插值
效果并不理想,在图像梯度大的地方很容易出现噪声干扰。 运行时间很长,时效性差void Cimage2View::ThreeLinearInterpolation(unsigned char** SourceData, int Width , int Height , int Band , unsigned char** NewData, i原创 2016-10-19 19:12:30 · 800 阅读 · 0 评论 -
otsu大津法
int Otsu(unsigned char* src,int Height,int Width) { //histogram float histogram[256] = {0}; for(int i=0; i < Height; i++) { unsigned char* p=src + W转载 2016-10-18 11:03:13 · 247 阅读 · 0 评论 -
在MFC中,不借用其他的库函数读取BMP图像,显示,也可以重新生成
void CReadBMPImageAndShowView::OnOpenimage(){ // TODO: 在此添加命令处理程序代码 CFileDialog log(true,"file",NULL,OFN_HIDEREADONLY, "bmp|*.bmp||",NULL); if(log.DoModal() == IDOK) {原创 2016-10-11 17:07:49 · 563 阅读 · 0 评论 -
图像处理中的一阶偏导数和二阶偏导数
一阶差分:二阶偏导数的推导和近似:上式以点(i+1,j)为中心,用i代换i+1可得以(i,j)为中心的二阶偏导数则有:同理:进而可推导:这样我们就可以很好的运用其他的一阶偏导的定义,如SIFT特征OpenCV实现版本中的一阶以及二阶偏导:[cpp] view plain copy /* Computes the partial derivatives in x, y, and sc转载 2016-09-23 20:35:17 · 1165 阅读 · 0 评论 -
链码表追踪二值图像的最外层轮廓
#include <iostream>#include <string>#include "gdal_priv.h"using namespace std;/********************************************************* 根据容差判断两像素颜色是否相近* 参数c1、c2为两种颜色信息,delta为容差*****************原创 2016-10-09 16:53:20 · 1339 阅读 · 0 评论 -
Hough变换检测直线
直线的霍夫变换:霍夫空间极坐标与图像空间的转换公式: p = y * sin(theta) + x * cos(theta);之后遍历图像的每个坐标点,每个坐标点以一度为增量,求取对应的p值,存入数组中,查找数组中数目大于一定阈值的p和theta,再在图像空间中把 直线 恢复出来霍夫变换就是把图像左边空间上的线段转换到霍夫空间一个点,然后通过点的数目多少来确定是否为一条线段(但是画出的结果为一条原创 2016-10-08 21:55:26 · 855 阅读 · 3 评论 -
单波段二值图像区域增长
主要就是用到了两个容器,一个vector,一个list。其中vector用来存贮查找到的所有类型相同的区域,list用于暂时保存找到的类型相同的点,然后以找到的点为新的中心,查找该点的八方向,用来循环查找新的类型相同的点代码如下:#include<iostream>#include<gdal_priv.h>#include<list>#include<vector>using namespa原创 2016-10-07 10:49:33 · 492 阅读 · 0 评论