图像处理二阶微分方法

2017-05-29 17:48:43 zhzcc 阅读数 2181
  • SIFT特征提取2

    了解Hough变换基本思想及直线检测步骤; 掌握Harris角点检测的基本思想及实现步骤; 了解尺度空间概念及SIFT特征提取的基本思想 了解ORB中快速特征检测及BRIEF特征建立方法 掌握前述算子的OpenCV实现

    2606人学习 CSDN就业班
    免费试看

锐化处理的主要目的是突出灰度过渡部分。理论上来说可以通过空间微分来实现锐化处理,通过图像微分增强边缘和其他突变(如噪声),削弱灰度变化缓慢的区域。

 

g(x,y)是变换之后的图像,c=-1,  后面的公式则是拉普拉斯算子,即微分滤波器

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
	Mat img=imread("1.jpg",0);
	if(!img.data)
	{
        return -1;	
	}
	Mat image;
	img.copyTo(image);
	for (int i = 1; i < img.rows-1; i++)
	{
		uchar* imgpreptr=img.ptr(i-1);
		uchar* imgptr=img.ptr(i);
		uchar* imgnextptr=img.ptr(i+1);
		uchar* imageptr=image.ptr(i);
		for (int j = 1; j < img.cols-1; j++)
		{
			imageptr[j]=imgptr[j]+imgpreptr[j]+imgptr[j-1]+imgptr[j]*(-4)+imgptr[j+1]+imgnextptr[j];
		}
	}
	imshow("原图",img);
	imshow("锐化处理",image);
	waitKey(0);
	return 0;
}


2018-05-15 15:20:01 jizhidexiaoming 阅读数 1819
  • SIFT特征提取2

    了解Hough变换基本思想及直线检测步骤; 掌握Harris角点检测的基本思想及实现步骤; 了解尺度空间概念及SIFT特征提取的基本思想 了解ORB中快速特征检测及BRIEF特征建立方法 掌握前述算子的OpenCV实现

    2606人学习 CSDN就业班
    免费试看
%题目:Laplacian微分算子           二阶微分算子

%意义:二阶微分比一阶微分更加敏感,尤其是对斜坡渐变得细节。

前面讲的微分算子都有两个模板,二阶微分算子只有一个模板:


实现效果:



Matlab代码实现:

%%
%题目:Laplacian微分算子           二阶微分算子1
%意义:二阶微分比一阶微分更加敏感,尤其是对斜坡渐变得细节。最简单的各项同性微分
%算子是Laplacian。

%%
clc;clear;
f = rgb2gray(imread('D:/Code/Image/classic.jpg'));
figure('name','原图'),imshow(f);
f = double(f);
[row,col] = size(f);

%%

L = [0 -1 0;-1 4 -1;0 -1 0];%可以使用模板,用模板内像素值组成矩阵点乘算子;也可直接使用公式形式。
g = zeros(row,col);
for i=2:row-1
    for j=2:col-1%求和值必须新图,否则影响后面求和结果
        g(i,j) = sum(sum(f(i-1:i+1, j-1:j+1).* L));
    end
end

%%
g=mat2gray(g);
figure('name','效果图');
imshow(g);
C++实现可以参考,前面的Sobel微分算子锐化,算法类似Sobel
2012-10-26 17:16:49 luoweifu 阅读数 9302
  • SIFT特征提取2

    了解Hough变换基本思想及直线检测步骤; 掌握Harris角点检测的基本思想及实现步骤; 了解尺度空间概念及SIFT特征提取的基本思想 了解ORB中快速特征检测及BRIEF特征建立方法 掌握前述算子的OpenCV实现

    2606人学习 CSDN就业班
    免费试看

Laplacian微分算子

定义

最单间的各项同性微分算子是拉普拉斯算子,一个二维图像f(x,y)的拉普拉斯微分算子的定义如下:



将(2)(3)式代入(1)式得

写成权系数矩阵模板为


效果如下:


算法源代码(java)

/**
	 * 二阶微分算子  laplacian算子方法
	* @param srcPath 图片的存储位置
	 * @param distPath 图像要保存的存储位置
	 * @param formatName 图像要保存的存储位置
	 */
	public static void laplacian0(String srcPath, String distPath, String formatName) {
		BufferedImage img = readImg(srcPath);		
		int w = img.getWidth();
		int h = img.getHeight();
		int pix[] = new int[w*h];
		        pix= img.getRGB(0, 0, w, h, pix, 0, w);
		pix = laplacian0(pix, w, h);
		img.setRGB(0, 0, w, h, pix, 0, w);
		writeImg(img, formatName, distPath);
	}
	/**
	 * 二阶微分算子  laplacian算子方法
	 * @param pix 像素矩阵数组
	 * @param w 矩阵的宽
	 * @param h 矩阵的高
	 * @return 处理后的数组
	 */	 
	public static int[] laplacian0(int[] pix, int w, int h) {
		int[] newpix = new int[w*h];
		ColorModel cm = ColorModel.getRGBdefault();
		int r;
		for(int y=0; y<h; y++) {
			for(int x=0; x<w; x++) {
				if(x!=0 && x!=w-1 && y!=0 && y!=h-1) {
					//G = 4f(x,y) - f(x-1,y) - f(x+1,y) - f(x,y-1) - f(x,y+1)
					r = 4*cm.getRed(pix[x+(y)*w]) - cm.getRed(pix[x-1+(y)*w]) - cm.getRed(pix[x+1+(y)*w])
					- cm.getRed(pix[x+(y-1)*w]) - cm.getRed(pix[x+(y+1)*w]);					
					newpix[x+y*w] = 255<<24 | r<<16 | r<<8 | r;
				}
			}
		}
		int temp = findMinInt(newpix);
		for(int i=0; i<newpix.length; i++) {
			newpix[i] = newpix[i] + temp;
		}
		return newpix;
		
	}


还有几种laplacian算子的变形,如下

    

对应的效果如下:

     

L1                                                          L2                                                                L3

从以上几个效果可以看出,L1与L0算子的效果基本相同,肉眼很难分辨;L2获得的细节信息较弱;L3处理的结果是图像的纹里比原图更清晰。

2018-09-23 15:34:24 yb1254844976 阅读数 4826
  • SIFT特征提取2

    了解Hough变换基本思想及直线检测步骤; 掌握Harris角点检测的基本思想及实现步骤; 了解尺度空间概念及SIFT特征提取的基本思想 了解ORB中快速特征检测及BRIEF特征建立方法 掌握前述算子的OpenCV实现

    2606人学习 CSDN就业班
    免费试看

数字图像的微分也就是数字函数的微分有很多不用的定义,但是任何定义都必须保证一下几点:

一阶微分:(1)在恒定灰度区域的微分值为零;

                  (2)在灰度台阶或斜坡处微分值非零;

                  (3)沿着斜坡的微分值非零;

二阶微分:(1)在恒定灰度区域的微分值为零;

                  (2)在灰度台阶或斜坡起点处微分值非零;

                  (3)沿着斜坡的微分值为零;

对于一维函数,其一阶微分的基本定义是差值

                      

二阶微分的定义为

                    

             图1 图像中一段水平剖面的一维数字函数的一阶微分和二阶微分的说明

摘自 冈萨雷斯版《数字图像处理》(第三版),书中把二阶微分的第三个条件写错了,把零写为了非零

2014-12-26 08:41:58 hh555800 阅读数 2715
  • SIFT特征提取2

    了解Hough变换基本思想及直线检测步骤; 掌握Harris角点检测的基本思想及实现步骤; 了解尺度空间概念及SIFT特征提取的基本思想 了解ORB中快速特征检测及BRIEF特征建立方法 掌握前述算子的OpenCV实现

    2606人学习 CSDN就业班
    免费试看

     在图像的二阶微分中,主要是需要掌握图像的拉普拉斯算子。


     拉普拉斯是个线性的算子。


     具有旋转不变性。


     二阶微分在增强图像细节方面要比一阶微分好得多。


可通过如下代码产生:

 fspecial('laplacian', 0)

ans =

       0              1              0       
       1             -4              1       
       0              1              0      


二阶微分算法

阅读数 1296