图像处理的形状数怎么算_判断几何图形形状 图像处理 - CSDN
  • Freeman链码(弗雷曼链码)是指用曲线起始点的坐标和边界点方向代码来描述曲线或边界的方法,常被用来在图像处理、计算机图形学、模式识别等领域中表示曲线和区域边界。它是一种边界的编码表示法,用边界方向作为...

    转自:http://blog.csdn.net/yang6464158/article/details/39801381

    Freeman链码(弗雷曼链码)是指用曲线起始点的坐标和边界点方向代码来描述曲线或边界的方法,常被用来在图像处理、计算机图形学、模式识别等领域中表示曲线和区域边界。它是一种边界的编码表示法,用边界方向作为编码依据,为简化边界的描述,一般描述的是边界点集。

    常用的链码按照中心像素点邻接方向个数的不同,分为4连通链码和8连通链码。4连通链码的邻接点有4个,分别在中心点的上、下、左和右。8连通链码比4连通链码增加了4个斜方向,因为任意一个像素周围均有8个邻接点,而8连通链码正好与像素点的实际情况相符,能够准确地描述中心像素点与其邻接点的信息。因此,8连通链码的使用相对较多。

     

    (a)四方向链码的方向符;                       (b)八方向链码的方向符。

     

    八链码如下:

     

    1. 链码的定义

      按照水平、垂直和两条对角线方向,可以为相邻的两个像素点定义4个方向符:0、1、2、3,分别表示0°、90°、180°和270°四个方向。同样,也可以定义8个方向符:0、1、2、3、4、5、6、7。链码就是用线段的起点加上由这几个方向符所构成的一组数列,通常称之为Freeman链码。用Freeman链码表示曲线时需要曲线的起点,对8链码而言,奇数码和偶数码的对应线段长度不等,规定偶数码单位长度为1,奇数码的单位长度为1.414。

     

    2. 曲线的链码表示

    (1)原链码  从边界(曲线)起点S开始,按顺时针方向观察每一线段走向,并用相应的指向符表示,结果就形成表示该边界(曲线)的数码序列,称为原链码,表示为

     

          其中,S表示边界(曲线)的起点坐标,N=4或8时分别表示四链码和八链码。当边界(曲线)闭合时,会回到起点,S可省略。

    (2)归一化链码 

          原链码具有平移不变性(平移时不改变指向符),但当改变起点S时,会得到不同的链码表示,即不具备唯一性。为此可引入归一化链码,其方法是:

          对于闭合边界,任选一起点S得到原链码,将链码看作由各方向数构成的n位自然数,将该码按一个方向循环,使其构成的n位自然数最小,此时就形成起点唯一的链码,称为归一化链码,也称为规格化链码。我们将这样转换后所对应的链码起点作为这个边界的归—化链码的起点。

    (3)链码的旋转归一化

            用链码表示给定目标的边界时,如果目标平移,链码不会发生变化。

            但是,如果目标旋转则链码会发生变化。为了得到具有旋转不变性的链码,我们可定义所谓的差分码。链码对应的差分码定义为:

     

        对差分码进行(起点)归一化,就可得到归一化(唯一)的差分码,它具有平移和旋转不变性,也具有唯一性。 

     

    3. 边界的形状数表示

         由于归一化的差分码既具有唯一性,也具有目标物平移和旋转不变性,因此可用来表示边界,称为形状数。形状数序列的长度(位数)称为形状数的阶,它可作为闭合边界的周长。

        如上图所示的目标边界,其

         原链码为:42120606454                   ,

         差分码为 :   6716626617               ,

         形状数:         1662661767               ,

         形状数的阶为10 。

    展开全文
  • Reference:图像处理基本算法之形状特征 下文是在原文基础上进行修改的,具体可以查看原文。 (一)形状特征 (一)特点:各种基于形状特征的检索方法都可以比较有效地利用图像中感兴趣的目标来进行检索,但它们...

    Reference:图像处理基本算法之形状特征

    下文是在原文基础上进行修改的,具体可以查看原文。

    (一)形状特征

      (一)特点:各种基于形状特征的检索方法都可以比较有效地利用图像中感兴趣的目标来进行检索,但它们也有一些共同的问题,包括:①目前基于形状的检索方法还缺乏比较完善的数学模型;②如果目标有变形时检索结果往往不太可靠;③许多形状特征仅描述了目标局部的性质,要全面描述目标常对计算时间和存储量有较高的要求;④许多形状特征所反映的目标形状信息与人的直观感觉不完全一致,或者说,特征空间的相似性与人视觉系统感受到的相似性有差别。另外,从 2-D 图像中表现的 3-D 物体实际上只是物体在空间某一平面的投影,从 2-D 图像中反映出来的形状常不是 3-D 物体真实的形状,由于视点的变化,可能会产生各种失真。

     

    (二)常用的特征提取与匹配方法

     

    Ⅰ几种典型的形状特征描述方法

     

    通常情况下,形状特征有两类表示方法,一类是轮廓特征,另一类是区域特征。图像的轮廓特征主要针对物体的外边界,而图像的区域特征则关系到整个形状区域。

     

    几种典型的形状特征描述方法:

    (1)边界特征法该方法通过对边界特征的描述来获取图像的形状参数。其中Hough 变换检测平行直线方法和边界方向直方图方法是经典方法。Hough 变换是利用图像全局特性而将边缘像素连接起来组成区域封闭边界的一种方法,其基本思想是点—线的对偶性;边界方向直方图法首先微分图像求得图像边缘,然后,做出关于边缘大小和方向的直方图,通常的方法是构造图像灰度梯度方向矩阵。

    (2)傅里叶形状描述符法

     

    傅里叶形状描述符(Fourier shape descriptors)基本思想是用物体边界的傅里叶变换作为形状描述,利用区域边界的封闭性和周期性,将二维问题转化为一维问题。

     

    由边界点导出三种形状表达,分别是曲率函数、质心距离、复坐标函数。

     

    (3)几何参数法

     

    形状的表达和匹配采用更为简单的区域特征描述方法,例如采用有关形状定量测度(如矩、面积、周长等)的形状参数法(shape factor)。在 QBIC 系统中,便是利用圆度、偏心率、主轴方向和代数不变矩等几何参数,进行基于形状特征的图像检索。

     

    需要说明的是,形状参数的提取,必须以图像处理及图像分割为前提,参数的准确性必然受到分割效果的影响,对分割效果很差的图像,形状参数甚至无法提取。

     

    (4)形状不变矩法

     

    利用目标所占区域的矩作为形状描述参数。

     

    (5)其它方法

     

    近年来,在形状的表示和匹配方面的工作还包括有限元法(Finite Element Method 或 FEM)、旋转函数(Turning Function)和小波描述符(Wavelet Descriptor)等方法。

     

    实际上,只是提取物体的形状,这并不难,最难的是这些特征该怎么用!

    特征嘛,自然是讲此物区分彼物的特点。

    那么假如,给出了一系列不同形状物体的轮廓该如何识别出他们呢?正方形,圆形,矩形,椭圆,不规则图形,再进一步,这些图形由于受到信号的干扰,有噪声存在时,该如何去识别他们呢?

    那就可以使用形状的特征了,我们定义一些参数,来描述这些形状。

    1 矩形度:R = A0/A; A0为区域面积,A为区域最小外接矩形面积。

    那么R = 1 时,为矩形的概率很大,R = PI/4时为圆的可能性最大

    2 体态比 T = a/b;

    a b 分别为区域最小外接矩形的长和宽。

    T = 1 为正方形或者圆形,

    T>1 为细长图形

    3 球状性 S = Ri/Rc

    Ri Rc分别为内切圆和外接圆半径,圆心都在中心上

    4 球状性 C = Ur/Pr

    Ur 为区域重心到轮廓点的平均距离

    Pr 为区域重心到轮廓点的均方差

    5 中心矩

    这一特征,使用颇为频繁,OpenCV有专门的函数求解(p,q)次矩

    6 长轴 短轴

    最小外接矩形的长轴和短轴

    7面积

    一般会作为阈值使用,判定某个区域的面积在两个阈值之间才判定有效

     

     下面给出各个形状特征的求法:

    //图像的形状特征分析
    #include <cv.h>
    #include <cxcore.h>
    #include <highgui.h>
    #include <iostream>
    using namespace std;
    
    int main()
    {
    	IplImage *src = cvLoadImage("E:\\image\\mapleleaf.tif",0);
    	IplImage *image = cvCreateImage(cvGetSize(src),8,3); 
    	image = cvCloneImage(src);
    	cvNamedWindow("src",1);
    	cvNamedWindow("dst",1);
    	cvShowImage("src",src);
    
    	CvMemStorage *storage = cvCreateMemStorage(0);
    	CvSeq * seq = cvCreateSeq(CV_SEQ_ELTYPE_POINT, sizeof(CvSeq), sizeof(CvPoint), storage);
    	CvSeq * tempSeq = cvCreateSeq(CV_SEQ_ELTYPE_POINT, sizeof(CvSeq), sizeof(CvPoint), storage);
    	//新图,将轮廓绘制到dst
    	IplImage *dst = cvCreateImage(cvGetSize(src),8,3); 
    	cvZero(dst);//赋值为0
    	double length,area;
    
    	//获取轮廓
    	int cnt = cvFindContours(src,storage,&seq);//返回轮廓的数目
    	cout<<"number of contours   "<<cnt<<endl;
    	
    	//计算边界序列的参数 长度 面积 矩形 最小矩形 
    	//并输出每个边界的参数
    	CvRect rect;
    	CvBox2D box;
    	double axislong,axisShort;//长轴和短轴
    	double temp1= 0.0,temp2 = 0.0;
    	double Rectangle_degree;//矩形度
    	double long2short;//体态比
    	double x0,y0;
    	long sumX  = 0 ,sumY = 0;
    	double sum =0.0;
    	int i,j,m,n;
    	unsigned char* ptr;
    
    	double UR;//区域重心到轮廓的平均距离
    	double PR;//区域重心到轮廓点的均方差
    	CvPoint * contourPoint; 
    	int count = 0;
    	double CDegree;//圆形性
    
    	CvPoint *A,*B,*C;
    	double AB,BC,AC;
    	double cosA,sinA;
    	double tempR,inscribedR;
    	
    	for (tempSeq = seq;tempSeq != NULL; tempSeq = tempSeq->h_next)
    	{
    		//tempSeq = seq->h_next;
    		length = cvArcLength(tempSeq);
    		area = cvContourArea(tempSeq);
    		cout<<"Length = "<<length<<endl;
    		cout<<"Area = "<<area<<endl;
    		cout<<"num of point "<<tempSeq->total<<endl;
    		//外接矩形
    		rect = cvBoundingRect(tempSeq,1);
    		
    
    		//绘制轮廓和外接矩形
    		cvDrawContours(dst,tempSeq,CV_RGB(255,0,0),CV_RGB(255,0,0),0);
    		cvRectangleR(dst,rect,CV_RGB(0,255,0));
    		cvShowImage("dst",dst);
    		//cvWaitKey();
    
    		//绘制轮廓的最小外接圆 
    		CvPoint2D32f center;//亚像素精度 因此需要使用浮点数
    		float radius;
    		cvMinEnclosingCircle(tempSeq,¢er,&radius);
    		cvCircle(dst,cvPointFrom32f(center),cvRound(radius),CV_RGB(100,100,100));
    		cvShowImage("dst",dst);
    		//cvWaitKey();
    
    		//寻找近似的拟合椭圆 可以使斜椭圆
    		CvBox2D ellipse = cvFitEllipse2(tempSeq);
    		cvEllipseBox(dst,ellipse,CV_RGB(255,255,0));
    		cvShowImage("dst",dst);
    		//cvWaitKey();
    
    
    		//绘制外接最小矩形
    		CvPoint2D32f pt[4];
    		box = cvMinAreaRect2(tempSeq,0);
    		cvBoxPoints(box,pt);
    		for(int i = 0;i<4;++i){
    			cvLine(dst,cvPointFrom32f(pt[i]),cvPointFrom32f(pt[((i+1)%4)?(i+1):0]),CV_RGB(0,0,255));
    		}
    		cvShowImage("dst",dst);
    		//cvWaitKey();
    
    
    		//下面开始分析图形的形状特征 
    		//长轴 短轴
    		temp1 = sqrt(pow(pt[1].x -pt[0].x,2) + pow(pt[1].y -pt[0].y,2));
    		temp2 = sqrt(pow(pt[2].x -pt[1].x,2) + pow(pt[2].y -pt[1].y,2));
    
    		if (temp1 > temp2)
    		{
    			axislong = temp1;
    			axisShort=temp2;
    		} 
    		else
    		{
    			axislong = temp2;
    			axisShort=temp1;
    		}
    		
    		cout<<"long axis: "<<axislong<<endl;
    		cout<<"short axis: "<<axisShort<<endl;
    		//矩形度 轮廓面积和最小外接矩形面积(可以是斜矩形)之比
    		Rectangle_degree = (double)area/(axisShort*axislong);
    
    		cout<<"Rectangle degree :"<<Rectangle_degree<<endl;
    		//体态比or长宽比 最下外接矩形的长轴和短轴的比值
    		long2short = axislong/axisShort;
    		cout<<"ratio of long axis to short axis: "<<long2short<<endl;
    		//球状性 由于轮廓的内切圆暂时无法求出先搁置 
    		//先求内切圆半径 枚举任意轮廓上的三个点,半径最小的就是内切圆的半径
    		//以下的最大内切圆半径求法有误 待改进
    		
    		/*
    		for (int i = 0 ; i< tempSeq->total -2;i++)
    		{
    			for (int j= i+1; j<tempSeq->total-1;j++)
    			{
    				for (int m = j+1; m< tempSeq->total; m++)
    				{
    					//已知圆上三点,求半径
    					A = (CvPoint*)cvGetSeqElem(tempSeq ,i);
    					B = (CvPoint*)cvGetSeqElem(tempSeq ,j);
    					C = (CvPoint*)cvGetSeqElem(tempSeq,m);
    					AB = sqrt(pow((double)A->x - B->x,2)+ pow((double)A->y - B->y,2));
    					AC =sqrt(pow((double)A->x - C->x,2) + pow((double)A->y - C->y,2));
    					BC = sqrt(pow((double)B->x - C->x,2)+ pow((double)B->y - C->y,2));
    
    					cosA = ((B->x - A->x)*(C->x - A->x) + (B->y - A->y)*(C->y - A->y))/(AB*AC);
    					sinA = sqrt(1 - pow(cosA,2));
    					tempR = BC/(2*sinA);
    
    					if (m == 2)
    					{
    						inscribedR = tempR;
    					} 
    					else
    					{
    						if (tempR < inscribedR)
    						{
    							inscribedR = tempR;
    						}
    					}
    
    
    				}
    			}
    		}
    
    		//输出最大内切圆半径
    		cout<<"radius of max inscribed circle  "<<inscribedR<<endl;
    		*/
    		//圆形性 假设轮廓内是实心的
    		//球区域中心x0 y0
    		sumX = 0;
    		sumY = 0;
    		src = cvCloneImage(image);
    		for (int i = 0 ; i< src->height;i++)
    		{
    			for (int j = 0; j< src->width;j++)
    			{
    				ptr = (unsigned char *)src->imageData + i*src->widthStep + j;
    				if ((*ptr) > 128)
    				{
    					sumX += (long)j;
    					sumY += (long)i;
    				}
    
    			}
    		}
    		x0 = sumX/area;
    		y0 = sumY/area;
    		cout<<"center of gravity "<<x0<<"   "<<y0<<endl;
         //求区域到重心的平均距离
    		sum = 0;
    		count = 0;
    		for (m = 0 ; m< tempSeq->total;m++)
    		{
    			contourPoint = (CvPoint*)cvGetSeqElem(tempSeq,m);
    			sum += sqrt(pow(contourPoint->x - x0,2)+ pow(contourPoint->y - y0,2));
    			count++;
    		}
    		UR = sum/count;
    		cout<<"mean distance to center of gravity"<<UR<<endl;
    		//求区域重心到轮廓点的均方差
    		sum = 0;
    		for (m = 0 ; m< tempSeq->total;m++)
    		{
    			contourPoint = (CvPoint*)cvGetSeqElem(tempSeq,m);
    			temp1 = sqrt(pow(contourPoint->x - x0,2)+ pow(contourPoint->y - y0,2));
    			sum += pow(temp1 - UR,2);
    		}
    		PR = sum/count;
    		cout<<"mean square error of distance to center of gravity"<<PR<<endl;
    		//圆形性 
    		CDegree= UR/PR;
            cout<<"degree of circle "<<CDegree<<endl;
    		//中心距
    		
    		cvWaitKey(0);
    	}
    	
    	
    	cvReleaseImage(&src);
    	cvReleaseImage(&dst);
    	cvReleaseMemStorage(&storage);	
    	
    	return 0;
    }

     

     

    展开全文
  •  链码:描述各边界点像素的坐标。...描述曲线方向的链码法用曲线的起始点的坐标和斜率来表示直线。...区域边界轮廓可理解为相邻边界像素之间的单元连线逐段相连而成。...多边形主要特征参数:顶
    
    1. 链码:描述各边界点像素的坐标。

      描述曲线方向的链码法用曲线的起始点的坐标和斜率来表示直线。

      区域边界轮廓可理解为相邻边界像素之间的单元连线逐段相连而成。

      边界链码具有方向性。

    2. 斜率:表示轮廓上个点的指向。

    3. 曲率:表示斜率的变化率,用于描述轮廓上各点沿轮廓方向变化的情况。

      曲率的局部极值点称为角点。

    4. 多边形主要特征参数:顶点数、凹点数、内角分布。

    5. 凹凸度(concavo-convex)反映物体形状凹凸程度的一个重要度量定义如下:

    Concavo-convex=Sr/Sc

    1. 傅里叶描述子:对轮廓的离散傅里叶变化表达可以作为定量描述路口形状的基础。

      傅里叶描述子反映了原曲线的形状特征。

    2. 矩形度:物体的面积A与物体的最小外接矩形的面积B之比,即R=A/B。矩形度反映了物体在最小外接矩形中的填充程度。

    3. 圆形度:称为区域的紧凑性,定义为4π倍的区域面积A与周长p的平方之比。即c=4πA/p²。面积相同时,具有光滑边界的形状边界较短,圆形度较大,表明形状密集。

    4. 边缘检测:(1)滤波:降低噪声2)增强:是有显著变化的点凸显出来  3)检测:确定边缘点

    展开全文
  • MATLAB图像处理(一)——计算机图形学之图像形状识别 由于遇到了很多次这个课题,这次做完之后结合手上的资料总结一下。 基本步骤: 1、读取彩色图像转化为二值图像; 2、确定图像中的形状边界; 3、确定所需形状的...

    MATLAB图像处理(一)——计算机图形学之图像形状识别

    由于遇到了很多次这个课题,这次做完之后结合手上的资料总结一下。

    基本步骤:

    1、读取彩色图像转化为二值图像;

    2、确定图像中的形状边界;

    3、确定所需形状的目标;

    本文主要通过识别圆形目标来进行说明,原图如下所示,本例需要识别出下图中的圆形物体:
    在这里插入图片描述

    1、读取彩色图像转化为二值图像

    针对图像中可能有不同形状的目标物体,为了进行目标筛选,可以先通过形状判断,过滤掉我们不需要的物体,极大地提高图像识别的效率。

    1) 读取彩色图像

    % 1、读取图像并转化为二值图像
    RGB = imread('ImageSeg.png');
    figure;imshow(RGB);title('原图像');
    

    2)将彩色图像转化为二值图像

    % 转化为灰度图像
    I = rgb2gray(RGB);
    % 设置阈值
    threshold = graythresh(I);
    % 转化为二值图像
    bw = im2bw(I,threshold);
    

    注意:如果使用阈值公式进行转化,转化出的效果如果不符合预期的话需要手动调整阈值,上面代码的效果如下:
    在这里插入图片描述
    所以我们根据图像像素的特性人为调整阈值。

    bw = im2bw(I,0.69);
    

    在这里插入图片描述
    调整后的二值图像如上图所示,可以看到物体形状非常清晰,但是明显看到背景有许多噪点,所以在这里为了去除这些噪点我们进行了人工去噪,去噪的代码如下,即简单的领域判断。

    % 通过领域判断手动去噪
    [m,n] = size(bw);
    for i = 2:m-1
       for j = 2:n-1
           %同上下元素判断       
           if(bw(i,j)~=bw(i+1,j) && bw(i,j)~=bw(i-1,j))
               bw(i,j) = 1;
           %同左右元素判断
           elseif(bw(i,j)~=bw(i,j+1) && bw(i,j)~=bw(i,j-1))
               bw(i,j) = 1;
           %同斜边元素判断
           elseif(bw(i,j)~=bw(i+1,j+1) && bw(i,j)~=bw(i-1,j-1))
               bw(i,j) = 1;
           %同斜边元素判断
           elseif(bw(i,j)~=bw(i-1,j+1) && bw(i,j)~=bw(i+1,j-1))
               bw(i,j) = 1;
           end
       end
    end
    

    去噪之后的二值图像为:
    在这里插入图片描述
    然后对以上图像进行取反,以备下面使用。

    for i = 1:m
        for j = 1:n
            bw(i,j) = ~bw(i,j);
        end
    end
    

    结果为
    在这里插入图片描述

    2、确定图像中的形状边界

    首先去除小目标,由于本例图像中不存在小目标,所以可省略该步骤,其次进行孔洞填充并进行白色描边,最后通过bwboundaries函数确定图像边界。

    % 去除小目标,因为本图没有小目标,所以可以不需要本条语句
    bw = bwareaopen(bw,30);
    % 图形学结构元素构建,圆形
    se = strel('disk',8);
    % 关操作
    bw = imclose(bw,se);
    % 填充孔洞
    bw = imfill(bw,'holes');
    % 二值化图像显示
    figure(1);imshow(bw);title('二值图像');
    [B,L] = bwboundaries(bw,'noholes');
    figure(2);imshow(label2rgb(L,@jet,[.5 .5 .5]));
    hold on;
    for k = 1:length(B)
    boundary = B{k};
    % 显示白色边界
    plot(boundary(:,2),boundary(:,1),'w','LineWidth',2)
    end
    

    在这里插入图片描述

    3、确定所需形状的目标

    确定圆形目标,求取图形周长,圆心,面积,人为设置阈值进行过滤,在这里我设置阈值为0.85,即形状比对大于这个阈值的就是我们所需要的目标物体。

    hold on;
    % 确定圆形目标
    stats = regionprops(L,'Area','Centroid');
    % 设置求面积
    threshold = 0.85;
    for k = 1:length(B)
        boundary = B{k};
        delta_sq = diff(boundary).^2;
        % 求周长     
        perimeter = sum(sqrt(sum(delta_sq,2)));
        % 求面积     
        area = stats(k).Area;
        metric = 4*pi*area/perimeter^2;
        metric_string = sprintf('%2.2f',metric);
        % 根据阈值匹配
        if metric > threshold  
           centroid = stats(k).Centroid;
           plot(centroid(1),centroid(2),'ko');
           text(centroid(1)-2,centroid(2)-2, '这是圆形','Color',...
            'k','FontSize',14,'FontWeight','bold');
        end
           text(boundary(1,2)-10,boundary(1,1)-12, metric_string,'Color',...
            'k','FontSize',14,'FontWeight','bold');
    end
    title('图像形状识别')
    

    最后识别的效果图为:
    在这里插入图片描述
    源代码及所使用的文件链接:https://download.csdn.net/download/yueyingguang/11381702

    展开全文
  •  (一)特点:各种基于形状特征的检索方法都可以比较有效地利用图像中感兴趣的目标来进行检索,但它们也有一些共同的问题,包括:①目前基于形状的检索方法还缺乏比较完善的数学模型;②如果目标有变形时检索结果...
  • 数字图像处理是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。图像处理最早出现于 20 世纪 50 年代,当时的电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息。数字图像处理作为...
  • 目录 ...初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
  • (一)特点:各种基于形状特征的检索方法都可以比较有效地利用图像中感兴趣的目标来进行检索,但它们也有一些共同的问题,包括:①目前基于形状的检索方法还缺乏比较完善的数学模型;②如果目标有变形时检索结果往往...
  • 数字图像处理第九章数字图像处理---形态学图像处理(一)预备知识1.1 预备知识1.1.1 集合理论中的基本概念1.2 二值图像、集合及逻辑算子(二)膨胀和腐蚀2.1 膨胀2.2 结构元的分解2.3 strel函数2.4 腐蚀(三) 膨胀...
  • 图像处理与识别

    2016-07-01 08:45:03
    图像处理与识别学习小结   数字图像处理是对图像进行分析、加工、和处理,使其满足视觉、心理以及其他要求的技术。图像处理是信号处理在图像域上的一个应用。目前大多数的图像是以数字形式存储,因而图像处理很多...
  • 形态学图像处理

    2016-12-31 16:17:01
    形态学,即数学形态学(mathematical Morphology),是图像处理中应用最为广泛的技术之一,主要用于从图像中提取对表达和描绘区域形状有意义的图像分量,使后续的识别工作能够抓住目标对象最为本质〈最具区分能力-...
  • 数字图像处理应用领域 图像是人类获取和交换信息的主要来源,因此,图像处理的应用领域必然涉及到人类生活和工作的方方面面。随着人类活动范围的不断扩大,图像处理的应用领域也将随之不断扩大。 1)航天和航空方面 ...
  • 所谓数字图像处理,是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。20 世纪 50 年代,电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息,这便是早期的图像处理。早期图像处理...
  • 相信,阅读以下这些经典的图像处理书籍能够助你一臂之力。赶紧紧随大圣众包威客平台的脚步吧! 《数字图像处理基础》  随着台式计算机的处理能力日益增强,各种图像拍摄的设备(例如平板电脑、...
  • 图像处理_图像矫正

    2017-11-19 19:30:51
    票据图像处理 1.实验目的: 给予不同形状、不同大小票据,实现票据矫正,让票据图像摆正。 原始图类型:图像倾斜、图像摆放不正确,且周边充满大范围空白区 原始图类型2:图像倾斜,切图像摆放图正,周围出现大范围...
  • 1.4数字图像处理的基本步骤 数字图像处理的内容划分为以下两个主要类别:一类是其输入输出都是图像。一类是其输入可能是图像,但输出是从这些图像中提取的属性。 图像获取是数字图像处理的第一步处理。图像获取与...
  • 本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程《数字图像处理》及课件进行讲解,主要通过MFC单文档视图实现显示BMP图像增强处理,包括图像普通平滑、高斯平滑、不同算子的图像锐化知识...
1 2 3 4 5 ... 20
收藏数 67,730
精华内容 27,092
关键字:

图像处理的形状数怎么算