matlab矩阵转化为图像中如何求图像特征点的汉森矩阵

查看: 4718|回复: 1|关注: 0
如何求函数hessian矩阵?
<h1 style="color:# 麦片财富积分
新手, 积分 19, 距离下一级还需 31 积分
本帖最后由 sherlock303 于
20:04 编辑
一个比较复杂的多元函数L=fun1(x,y,z,w),没有办法求其符号微分,只能求数值微分,不知道有没有办法可以比较简便地求出这个函数对某向量(x0,y0,z0,w0)的hessian矩阵?
论坛优秀回答者
帖子最佳答案
关注者: 4073
|此回复为最佳答案
hessian(fun1,[x,y,z w])返回的是什么?
math (博士、教授)Email: & &&&QQ:
我在网络上的言论、见解等只代表我个人的观念,与任何研究机构、商业公司等无关。欢迎你通过任何方式与我探讨学术和技术上的问题(学生提问的话,请在论坛上发帖提问)。最新日志:
站长推荐 /3
车辆动力学工具箱介绍:一款集成3D虚拟环境的汽车仿真产品
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区网站已改版,请使用新地址访问:
gaijin_hessian 一种改进后的海森矩阵算法代码,针对医学图像处理效果比 ,可以识别较细的血管。 Special Effects 图形
263万源代码下载- www.pudn.com
&文件名称: gaijin_hessian& & [
& & & & &&]
&&所属分类:
&&开发工具: matlab
&&文件大小: 53 KB
&&上传时间:
&&下载次数: 15
&&提 供 者:
&详细说明:一种改进后的海森矩阵算法代码,针对医学图像处理效果比较好,可以识别较细的血管。-An improved Hessian matrix algorithm code, medical image processing effects for better, you can identify smaller vessels.
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&gaijin_hessian&&..............\123.jpg&&..............\gaijin.m
&[]:一般,勉强可用
&近期下载过的用户:
&&&&&&&&&&&[]
&输入关键字,在本站263万海量源码库中尽情搜索:
&[] - 用于2维、3维的血管图像增强,根据的理论为Frangi提出的Vessel enhancement diffusion。
&[] - hessian矩阵增强图像,在多个尺度上分别对图像进行增强并进行图像融合得到最终的增强图像
&[] - 基于hessian矩阵的图像处理,内附hessian的matlab源码
&[] - Hessian eig Filter algorithm
&[] - 多尺度海森矩阵血管增强算法,在MATLAB下实现了2维医学图像的血管增强
&[] - 这是“An efficientlocalChanCVesemodelforimagesegmentation”(简称LCV模型)的MATLAB源代码。LCV模型是非常重要局部区域活动轮廓模型,它被广泛使用于各个领域,如MRI大脑图像分割,血管图像分割,图像偏差场纠正。
&[] - CT等医学图像的分割及其三维重建的MATLAB源代码
&[] - 手指静脉linear_subspace特征提取
matlab实现
&[] - 图像滤波和掩膜处理,MATLAB编程实现图像滤波和掩膜处理
&[] - hessian程序,可用于增强算法的研究博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)19610人阅读
图像处理(122)
一:大致的算法流程
1. 对每个像素点计算图像在X方向Y方向的二阶偏导数,计算图像的XY方向的导数
2. 根据第一步的计算结果,有Hessian Matrix计算D(h) = Ixx*Iyy - Ixy*Ixy
其中Ixx表示X方向的二阶偏导数
Iyy表示Y方向的二阶偏导数
Ixy表XY方向的二阶导数
3. 根据第二步计算出来的值使用3×3窗口实现非最大信号压制,
我的做法, 直接给了threshold值,这个其实不很对,真的懒,不想弄啦!
二:导数计算实现
关于一阶与二阶高斯偏导数计算请看这里:
三:程序效果
四:算法代码
package com.gloomyfish.image.harris.
import java.awt.image.BufferedI
import java.util.ArrayL
import java.util.L
import com.gloomyfish.filter.study.AbstractBufferedImageOp;
public class HessianFeatureDetector extends AbstractBufferedImageOp {
private GaussianDerivativeFilter gdF
private double minRejectThreshold = 4.1; // (r+1)^2/r
private List&HessianMatrix& pixelMatrixL
public HessianFeatureDetector()
gdFilter = new GaussianDerivativeFilter();
pixelMatrixList = new ArrayList&HessianMatrix&();
public BufferedImage filter(BufferedImage src, BufferedImage dest) {
int width = src.getWidth();
int height = src.getHeight();
initSettings(height, width);
if ( dest == null )
dest = createCompatibleDestImage( src, null );
int[] inPixels = new int[width*height];
gdFilter.setDirectionType(GaussianDerivativeFilter.XX_DIRECTION);
BufferedImage bixx = gdFilter.filter(src, null);
getRGB( bixx, 0, 0, width, height, inPixels );
extractPixelData(inPixels, GaussianDerivativeFilter.XX_DIRECTION, height, width);
// YY Direction
gdFilter.setDirectionType(GaussianDerivativeFilter.YY_DIRECTION);
BufferedImage biyy = gdFilter.filter(src, null);
getRGB( biyy, 0, 0, width, height, inPixels );
extractPixelData(inPixels, GaussianDerivativeFilter.YY_DIRECTION, height, width);
// XY Direction
gdFilter.setDirectionType(GaussianDerivativeFilter.XY_DIRECTION);
BufferedImage bixy = gdFilter.filter(src, null);
getRGB( bixy, 0, 0, width, height, inPixels );
extractPixelData(inPixels, GaussianDerivativeFilter.XY_DIRECTION, height, width);
int[] outPixels = new int[width*height];
int index = 0;
for(int row=0; row& row++) {
int ta = 0, tr = 0, tg = 0, tb = 0;
for(int col=0; col& col++) {
index = row * width +
HessianMatrix hm = pixelMatrixList.get(index);
double[] t = hm.getThreshold();
if(t[0] & minRejectThreshold)
if(t[1] & minRejectThreshold)
if(t[2] & minRejectThreshold)
outPixels[index] = (ta && 24) | (tr && 16) | (tg && 8) |
setRGB( dest, 0, 0, width, height, outPixels );
private void initSettings(int height, int width)
int index = 0;
for(int row=0; row& row++) {
for(int col=0; col& col++) {
index = row * width +
HessianMatrix matrix = new HessianMatrix();
pixelMatrixList.add(index, matrix);
private void extractPixelData(int[] pixels, int type, int height, int width)
int index = 0;
for(int row=0; row& row++) {
int ta = 0, tr = 0, tg = 0, tb = 0;
for(int col=0; col& col++) {
index = row * width +
ta = (pixels[index] && 24) & 0
tr = (pixels[index] && 16) & 0
tg = (pixels[index] && 8) & 0
tb = pixels[index] & 0
HessianMatrix matrix = pixelMatrixList.get(index);
if(type == GaussianDerivativeFilter.XX_DIRECTION)
matrix.setXx(new double[]{tr, tg, tb});
if(type == GaussianDerivativeFilter.YY_DIRECTION)
matrix.setYy(new double[]{tr, tg, tb});
if(type == GaussianDerivativeFilter.XY_DIRECTION)
matrix.setXy(new double[]{tr, tg, tb});
转载请注明!
文章:68篇
阅读:1088189
文章:14篇
阅读:279479您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
结合局部形状信息的SIFT匹配算法.doc 8页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
&#xe600;下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
你可能关注的文档:
··········
··········
一种结合局部形状信息的SIFT匹配算法
摘要:尺度不变特征算子SIFT具有良好的尺度、旋转、光照不变特性,在图像匹配领域有着广泛的应用。当一幅图像有许多局部相似的区域时,使用SIFT匹配算法会产生大量的误匹配点的问题,为此,本文提出了一种结合局部形状信息的SIFT匹配算法。该算法采用椭圆邻域再结合特征点邻域的形状信息对特征点进行描述,采用欧氏距离和统计检验函数进行特征点的匹配。实验表明,本算法在增强了算子的防射不变性的基础上,降低了由于局部信息相似而造成的误匹配的概率,从而较为显著地改善了匹配效果。
关键字:特征匹配,局部形状信息,椭圆邻域,SIFT算法
SIFT feature matching algorithm with local shape context
Abstract: SIFT (Scale Invariant Feature Transform) is one of the most effective local feature of scale, rotation and illumination invariant, which is widely used in the field of image matching. While there will be a lot mismatches when an image has many similar regions. An improved SIFT feature matching algorithm with local shape context is put forward. The feature vectors are computed by dominant orientation assignment to each feature point based on elliptical neighboring region and with local shape context, then the feature vectors are matched by using Euclidean distance and thedistance. The experiment indicates that the improved algorithm can reduce mismatch probability and acquire good performance on affine invariance, improves matching results greatly.
Key Words: feature matching, local shape context, elliptical neighboring region, SIFT algorithm
图像匹配[1]是计算机视觉、图像重建、模式识别等领域的关键技术之一。其主要任务就是提取稳定的图像特征,并进行描述,使得这些特征具有可区分性、可靠性、独立性等特点。常用算法有:各种小波算法[2]、矩不变量算法[3]、角点检测算法[4]、几何形状特征算法[5]等。其中SIFT(Scale Invariant Feature Transform)特征匹配算法[6][7][8]是目前国内外特征匹配领域较好的一种算法,该算法描述的特征点具有平移、旋转、尺度和光照不变性。但是,当一幅图像有许多局部相似的区域时,SIFT算法就会出现大量的误匹配点对。因此,本文对SIFT算法进行了改进,加入局部形状内容,使得算法包含一定范围内的曲线形状信息,从而降低误匹配率。但是原来的算法使用的是具有固定形状的领域如每个特征点的圆形域,所以很显然它不能处理由防射转换带来的几何变形,因为固定区域不能覆盖变形后的相同的图像内容。最近Mikolajczyk et al. 指出使用特征点的椭圆邻域可以取得较好的防射不变的效果[9][10]。所以本文在特征点描述时采用椭圆邻域再结合特征点邻域的形状信息,从而大大地提高了匹配效率。
Lowe在2004年总结了现有的基于不变量技术的特征检测方法,提出了一种尺度不变的特征描述子。该算法首先在尺度空间进行特征检测,并确定特征点的位置和所处的尺度,然后使用特征点邻域的梯度的主方向作为该点的主向,以实现算子对尺度和方向的无关性。主要步骤如下:
1)检测尺度空间极值点
Lowe采用层叠滤波的方法检测特征点。为了有效地在尺度空间检测到稳定的特征点,采用高斯差分(Difference of Gaussian,DoG)函数检测局部特征点,DoG函数计算方便有效,是归一化高斯拉普拉斯算子(Laplacian of Gaussian,LoG)的近似,DoG定义为两个
正在加载中,请稍后...

我要回帖

更多关于 matlab 矩阵生成图像 的文章

 

随机推荐