
图像处理&机器视觉&matlab
文章平均质量分 58
xiaojidan2011
兴趣、悟性、勤奋、坚持!
展开
-
Matlab 关于plot设置(暴力版)
以前Matlab作图时,要设置好多的变量, 如标题,x轴,y轴间隔, 字体,线条等等特性的设置。这些在写的时候比较麻烦, 今天写了一个集成的函数,直接包含了一个基本的特性,只要用结构体包含进来就可以了。非常的方便。 代码 % Demo shows how to:% 1. use cell arrays when lines have different length%原创 2013-08-23 09:26:18 · 33138 阅读 · 2 评论 -
PCA, PCA whitening and ZCA whitening in 2D
Steps: Step 0: Load data Step 1a: Implement PCA to obtain U Step 1b: Compute xRot, the projection on to the eigenbasis Step 2: Reduce the number of dimensions from 2 to 1. Step 3: PCA Wh原创 2013-04-14 19:56:28 · 1783 阅读 · 0 评论 -
提高matlab运行速度的心得
空间上:1. 建议使用A = logical(sparse(m,n)),不建议使用 A = sparse(false(m,n)),两者结果一样,但是后者生成m×n的临时矩阵,浪费空间,且当m、n很大时,后者不一定能申请成功;2. 使用sparse几点注意:a) 只能用在二维以下的矩阵上;b) 由于matlab按照“先行后列”的方式读取数据(即先把第一列所有行读取完以转载 2012-12-17 22:00:43 · 2169 阅读 · 0 评论 -
图像处理与计算机视觉:基础,经典以及最近发展
///////////////////推荐博客//////////////////////////////////////xdyang的图像视觉小屋图像处理与计算机视觉经典论文(6)图像处理与分析(10)计算机视觉(8)模式识别和机器学习(12)[置顶] 图像处理与计算机视觉:基础,经典以及最近发展////////////////////////////转载 2012-12-09 09:57:57 · 9155 阅读 · 3 评论 -
matlab padarray
function :填充图像或填充数组use:B = padarray(A,padsize,padval,direction) A为输入图像,B为填充后的图像,padsize给出了给出了填充的行数和列数,通常用[r c]来表示。padval和direction分别表示填充方法和方向。它们的具体值和描述如下: padval:'symmetric'表示图像大小通过围绕边界进行镜原创 2012-11-15 15:34:26 · 5619 阅读 · 0 评论 -
matlab isnan用法
最近看代码,遇到一个函数isnan,网上找了很多资料没有发现有价值的,无奈之下只能阅读手册;isnanfunction:Array elements that are NaN description:TF = isnan(A) returns an array the same size as A containing logical 1 (true) where the原创 2012-11-08 16:38:42 · 15588 阅读 · 0 评论 -
matlab 图像二维直方图
clc;clear all;close all;ticI=imread('corner.png');% I=double(I); f=rgb2gray(I); figure,imshow(f),title('原图像'); figure,imhist(f),title('一维直方图');[m,n,d]=size(f)A=f;for i=1:1:256 for j=1:原创 2012-11-06 14:49:41 · 12219 阅读 · 0 评论 -
matlab 基本关于文件创建,读取的操作
本文附上一个例子代码,很值得学习,关于文件创建,读取的一些简单基础的语法,个人觉得很值得学习,另外matlab中eval函数,也应该值得学习下,真的很好的函数,功能强大。上代码:clc; clear all;% 先判断目录temp = 'c:\\ceshi';if ~exist(temp) mkdir(temp);end% 存储数据for i = 1 : 99原创 2012-11-05 16:15:06 · 2459 阅读 · 0 评论 -
基于小波变换的图像融合
原理大家翻书去,最近做个小作业,做到了关于小波变换的图像融合。clc;clear all;close all; % 清理工作空间clear[imA,map1] = imread('A.tif');M1 = double(imA) / 256;[imB,map2] = imread('B.tif');M2 = double(imB) /原创 2012-10-22 16:43:57 · 19926 阅读 · 10 评论 -
matlab cov函数
原理:cov(x), if x is a vector, returns the variance of x. For matrix input X, where each row is an observation, and each column is a variable, cov(X) is the covariance matrix. diag(cov(X)) is a vector原创 2012-11-01 22:41:16 · 6671 阅读 · 2 评论 -
梯度下降法
梯度下降法,基于这样的观察:如果实值函数 在点 处可微且有定义,那么函数在 点沿着梯度相反的方向 下降最快。因而,如果对于 0" src="http://upload.wikimedia.org/math/e/2/4/e243b8724ee0860a2b24f48b7c5c2360.png"> 为一个够小数值时成立,那么。考虑到这一点,我们可以从函数 的局部原创 2012-11-01 21:10:59 · 5597 阅读 · 2 评论 -
matlab 基于小波变换的图像压缩
原理书上都有,我就上代码了 clc;clear all;close all; % 清理工作空间clear; X=imread('fish.jpg'); X=rgb2gray(X);subplot(221); imshow(X); title('原原创 2012-10-22 16:35:05 · 15239 阅读 · 10 评论 -
matlab 线箱图制作
最近在做一个线箱图, 搞了好久, 今天想在里面输入几个字符串, 但是由于太长,无法实现换行的效果, 网上查了许多,都没什么满意的答案,索性自己找了网上的资料,改了点,现在的图比以前好看了。 看下面的图,红色圈起来的很不美观,需要修改。其实代码中只需要改一点就可以啦,自己捣鼓了好久,什么\n,\t,什么的,试试了好久都没有反应的。原来的代码:text(19.5,0.7,'low原创 2013-05-22 19:49:01 · 4661 阅读 · 1 评论 -
Matlab 关于如何读取文件夹中的所有图片(3种方法)****全****
Matlab读取图片的方法有很多种, 我给出的方法思想和他们的差不多一样,但是代码的风格可能有点区别, 可以学习。首先定义文件夹的名称:imgDir='.\coimg\';imgDir2='.\\coimg\\%s'; 用于读取图片 具体代码:oldPwd = pwd;cd(imgDir);x = dir;listOfImages = [];for i = 1原创 2013-07-10 02:28:07 · 48559 阅读 · 7 评论 -
关于ghostscript not found 解决方案
最近在看Machine Learning - A Probabilistic Perspective这本书,机器学习。MIT出版。作者:Kevin P Murphy书的website:http://www.cs.ubc.ca/~murphyk/MLbook/index.html.今天拿起代码,试着运行了下,出现了一个错误,运行到printPmtkFigure这个函数,出现:“ghost原创 2013-09-06 10:07:14 · 11974 阅读 · 0 评论 -
Windows平台上 Matlab 关于g++下面的编译,成功修改。
今天下载了Matlab的代码,里面部分代码用g++写的。mex CC=g++ DT.cmex CC=g++ height_function_der.cmex CC=g++ height_function_grad.cmex CC=g++ local_min.cmex CC=g++ zero_crossing.cmex CC=g++ -lm get_full_speed.cmex C原创 2013-08-19 07:15:04 · 2476 阅读 · 0 评论 -
Matlab 关于奥运五环的制作
今早在matlab博客看到一篇关于奥运五环的代码,觉得很有意思,贴过来大家看下。clc;clear all;N = 1000;angle = linspace(pi/4,9*pi/4,N);xb = cos(angle) * 0.9;yb = sin(angle) * 0.9;xy = cos(angle) * 0.9 + 1;yy = sin(angle) * 0.9 -原创 2013-08-19 07:31:00 · 4981 阅读 · 0 评论 -
A logical story
if 4 | [] disp('Must be true')endMust be trueMATLAB evaluates 4 | []as true. However, swapping the order of the argument to | results in a false.if [] | 4 disp('Must原创 2013-08-13 16:34:53 · 781 阅读 · 0 评论 -
ROC Curve, PR Curve and AUC
评价一个二分类模型的好坏有一些常见的标准。真实值有两个取值:P和N,分别表示正样本和负样本。假设值有两个取值:Y和N,同上。首先统计下表作基础:p nY TP FPN FN TN接下来的统计结果要建立在上述4个变量之上ROC曲线:横轴为FPR,纵轴为TPR。FPR=FP/N,TPR=TP/N,N表示总样本数。绘制出曲线应该在y=原创 2013-08-23 11:18:12 · 6009 阅读 · 2 评论 -
Matlab eval用法
for i=1:1eval(['A',num2str(i),'=rand(3);'])end结果:0.525045164762609 0.398880752383199 0.2553867404880510.325833628763249 0.415093386613047 0.02053577465818460.546449439903069 0.1807377602原创 2013-08-24 10:55:41 · 12257 阅读 · 0 评论 -
图像的稀疏表示——ScSPM和LLC的总结
前言 上一篇提到了SPM。这篇博客打算把ScSPM和LLC一起总结了。ScSPM和LLC其实都是对SPM的改进。这些技术,都是对特征的描述。它们既没有创造出新的特征(都是提取SIFT,HOG, RGB-histogram et al),也没有用新的分类器(也都用SVM用于最后的image classification),重点都在于如何由SIFT、HOG形成图像的特征(见图1)。转载 2013-08-12 09:27:59 · 18742 阅读 · 2 评论 -
图像显示
load clownimage(X),colormap(map)axis offhold onrect = [ 150 40 80 70]h = rectangle('position',rect);rect = 150 40 80 70It's kind of hard to see this black edge of the r原创 2013-08-22 09:20:37 · 1454 阅读 · 0 评论 -
Sparsity稀疏编码(二)(值得阅读)
为了更进一步的清晰理解大脑皮层对信号编码的工作机制(策略),需要把他们转成数学语言,因为数学语言作为一种严谨的语言,可以利用它推导出期望和要寻找的程式。本节就使用概率推理(bayes views)的方式把稀疏编码扩展到随时间变化的图像上,因为人类或者哺乳动物在日常活动中通过眼睛获取的信号是随时间变化而变化的,对于此类信号仍然有一些稀疏系数和基可以描述他们,同类型的处理方式也有慢特征分析(slow转载 2013-08-19 15:17:59 · 2141 阅读 · 0 评论 -
Sparsity稀疏编码(三) (值得阅读)
稀疏编码(sparse coding)和低秩矩阵(low rank)的区别 上两个小结介绍了稀疏编码的生命科学解释,也给出一些稀疏编码模型的原型(比如LASSO),稀疏编码之前的探讨文章就不说了,今天开始进入机器学习领域的稀疏表达。稀疏编码进入机器学习领域后,出现了很多应用,比如计算视觉领域的图像去噪,去模糊,物体检测,目标识别和互联网领域的推荐系统(Collaborative f转载 2013-08-19 15:18:51 · 3668 阅读 · 1 评论 -
Sparsity稀疏编码(一)(值得阅读)
稀疏编码来源于神经科学,计算机科学和机器学习领域一般一开始就从稀疏编码算法讲起,上来就是找基向量(超完备基),但是我觉得其源头也比较有意思,知道根基的情况下,拓展其应用也比较有底气。哲学、神经科学、计算机科学、机器学习科学等领域的砖家、学生都想搞明白人类大脑皮层是如何处理外界信号的,大脑对外界的“印象”到底是什么东东。围绕这个问题,哲学家在那想、神经科学家在那用设备观察、计算机和机器学习科学家则是转载 2013-08-19 15:17:29 · 5013 阅读 · 0 评论 -
Matlab使用过程中内存不足问题的总结
做图像处理的,对matlab这工具软件一定不会陌生,他的高集成度为图像处理提供了很大的方便,但我们在使用时难免会出现内存不足的问题,2、3G的内存还不够处理一次简单图像,这确实很恐怖。但这里的警告并不是说真的物理内存用完了,一般out of memenry存在以下几种情况:1、 变量需要的存储空间超过了可用的内存空间2、 数据需要的存储空间,超过内存中最大的可用连续存储空间3 、程序和原创 2012-10-19 13:54:28 · 43966 阅读 · 0 评论 -
Matlab命令系列之目录操作
1. filesep用于返回当前平台的目录分隔符,Windows是反斜杠(\),Linux是斜杠(/)。有时此命令结合ispc命令使用,可以灵活的设置目录分割符。2. fullfile用于将若干字符串连接成一个完整的路径,根据不同的操作系统自动填充目录分割符。例如:>> f=fullfile('D:','Matlab','example.txt')f=D:\Matlab\e原创 2012-10-11 21:56:05 · 10505 阅读 · 0 评论 -
matlab find用法 可以说是目前网上最全的,大家可以学习了
ind = find(X) 查询非零元素的位置,如果X是一个行向量,则返回一个行向量,否则,返回一个列向量。如果X全是零元素或者是空数组,则返回一个空数组。[row,col V] = find(X, ...) 查询满足一定条件的元素的行和列X一般为逻辑表达式,如X>5等。其中 row 返回满足条件的元素行的位置 col 返回满足条件的元素的列的位置原创 2012-08-23 14:53:28 · 37460 阅读 · 2 评论 -
针对matlab 四连通,和八连通的详解
功能:标注二进制图像中已连接的部分。语法:L = bwlabel(BW,n) [L,num] = bwlabel(BW,n)其中BW为输入图像;N可取值为4或8表示连接四连通或八连通区域;NUM为找到的连通区域数目;L为输出图像矩阵,其元素值为整数,背景被标记为0,第一个连通区域被标记为1,第二个连通区域被标记为2,依此类推.所以你不明白的1,2,3即为第1,2,3个连通区域的标记原创 2012-08-22 22:14:44 · 14215 阅读 · 4 评论 -
改变图像的大小
用法:B = imresize(A,m)B = imresize(A,m,method)B = imresize(A,[mrows ncols],method)B = imresize(...,method,n)B = imresize(...,method,h)imrersize函数使用由参数method指定的插值运算来改变图像的大小。method的几种可选值:'原创 2012-08-22 22:27:01 · 1663 阅读 · 0 评论 -
matlab cell数组
从cell使用说起 在读取文件的时候,cell数组(各种翻译都有,元胞数组,单元数组...直接无视)是Matlab的宠儿,基本都会出现,长期使用发现频率比struct高了不少~无论是Import Data还是使用textscan之类来获取数据.从长期使用高级语言的角度来说,特别是习惯了面向对象之后i,更习惯使用struct数组,概念也很相似,奈何现实是...我们先看一下Matlab在help给原创 2012-09-01 16:36:31 · 6548 阅读 · 0 评论 -
matlab 三维作图
1. mesh(Z)语句mesh(Z)语句可以给出矩阵Z元素的三维消隐图,网络表面由Z坐标点定义,与前面叙述的x-y平面的线格相同,图形由邻近的点连接而成.它可用来显示用其它方式难以输出的包含大量数据的大型矩阵,也可用来绘制Z变量函数.显示两变量的函数Z=f(x,y),第一步需产生特定的行和列的x-y矩阵.然后计算函数在各网格点上的值.最后用mesh函数输出.下面我们绘制sin(r)/原创 2012-08-31 10:35:11 · 4580 阅读 · 0 评论 -
matlab 中for循环的使用
clc;close all;clear;I=imread('1.bmp');W=fspecial('gaussian',3,0.5);size_a=size(I);g=imfilter(I,W,'conv','symmetric','same');t=g(1:2:size_a(1),1:2:size_a(2) );imshow(I);figure,imshow(t)大家看到这原创 2012-06-18 20:02:31 · 11822 阅读 · 0 评论 -
FFT
原理就不说了 我相信代码可以说明一切。另外如果像素不够,可以读颜色表。。。代码自己去搜索, #include "stdio.h"#include "Windows.h"#include "math.h"#define PI 3.1415926//几个全局变量,存放读入图像的位图数据、宽、高、颜色表及每像素所占位数(比特) //此处定义全局变量主要为了后面的图像数据访原创 2012-05-25 16:53:04 · 1210 阅读 · 0 评论 -
Schmidt
A为矩阵[m,n]=size(A);Q=zeros(m,n);tQ=zeros(m,n);R=zeros(n,m);for j=1:n v=A(:,j); for i=1:j-1 R(i,j)=(tQ(:,i)'*A(:,j))/(norm(tQ(:,i))^2) v=v-R(i,j)*tQ(:,i);原创 2012-06-13 10:45:14 · 733 阅读 · 0 评论 -
matlab读取一个目录下的所有图片
%this function is used to batch read the image datas from rootpath%the var imglist is a cell which contain the image datasets.%the var rootpath is the path of directory%the var grayflag means:转载 2012-06-13 16:02:01 · 2786 阅读 · 0 评论 -
线性判别分析(Linear Discriminant Analysis, LDA)算法分析
LDA算法入门一. LDA算法概述:线性判别式分析(Linear Discriminant Analysis, LDA),也叫做Fisher线性判别(Fisher Linear Discriminant ,FLD),是模式识别的经典算法,它是在1996年由Belhumeur引入模式识别和人工智能领域的。性鉴别分析的基本思想是将高维的模式样本投影到最佳鉴别矢量空间,以达到抽取分类信息和压缩特转载 2012-06-13 16:00:36 · 1895 阅读 · 1 评论 -
发个MatLab 自编的 均值滤波、中值滤波、高斯滤波 图像处理函数
虽然matlab里面有这些函数,但是攀立民老师要求自己编写,计算机视觉上有这个实验,到网上找了半天才零散的找到一些碎片,还是整理以后发上来吧!MatLab自编的均值滤波、中值滤波、高斯滤波 图像处理函数。%自编的均值滤波函数。x是需要滤波的图像,n是模板大小(即n×n)function d=avefilt(x,n) a(1:n,1:n)=1; %a即n×n模板,元素全是1转载 2012-06-13 11:17:19 · 1416 阅读 · 0 评论 -
相似性度量 精 ~~~~~
在做分类时常常需要估算不同样本之间的相似性度量(Similarity Measurement),这时通常采用的方法就是计算样本间的“距离”(Distance)。采用什么样的方法计算距离是很讲究,甚至关系到分类的正确与否。 本文的目的就是对常用的相似性度量作一个总结。本文目录:1. 欧氏距离2. 曼哈顿距离3. 切比雪夫距离4. 闵可夫斯基距离原创 2012-09-10 22:07:51 · 1457 阅读 · 0 评论 -
matlab 频域滤波
步骤:(1)计算原图像f(x,y)的DFT,(2) 讲频谱的零频点移动到频谱图的中心位置;(3)计算滤波器函数H(U,V)与F(U,V)的乘积G(U,V);(4)讲频谱G(U,V)的零频点移回到频谱图的坐上角。(5)计算(4)的结果的傅立叶反变换g(x,y);(6)取g(x,y)的实部作为最终的滤波后的结果图像。 代码:大家别激动的啦 代码来啦 哈哈哈 ~原创 2012-09-11 20:57:11 · 9170 阅读 · 3 评论