Matlab常用函数,学习笔记

来源:互联网 发布:蒸汽巴士推荐的淘宝店 编辑:程序博客网 时间:2024/05/18 03:20

画折线图

m=importdata('路径', ',');   读入矩阵

plot(m(:,1),m(:,2),'r-');      画图,m的第一列为x轴,第2列为y轴,红色折线图

a是一个矩阵,矩阵的平方为a^2,即矩阵乘以它本身。a中每个元素的平方:a.^2;

 

Hy学长,画y列时的代码

m=importdata('C:\Users\visual\Desktop\KCF\KCFCar1.txt', ',');

x=1:1:1019;

Plot(x,m(:,2),’r-’);

axis([1 1019 65 90]);   //这个是设置坐标轴的范围:xmin xmax ymin ymax

 

画矩形框:

rectangle('Position',[x,y,w,h]);  //给定起点[x,y],这里是左下角顶点;矩形的宽w;矩形的高h

rectangle('position',[1,1,5,5],'curvature',[1,1],'edgecolor','r','facecolor','g');

'curvature',[1,1],表示x,y方向上的曲率都为1,即是圆弧

'edgecolor','r'表示边框颜色是红色;

'facecolor','g'表示面内填充颜色为绿色。

 

移动图像的一整行或一整列

a = imread('C:\Users\visual\Desktop\walker9\walker9-2.png');  //读入一幅图像

m = circshift(a, 237, 1);  //图像的最后边的237行移动到最前面

例子:

A=racecar;

Y=circshift(A, 3, 2); //第一个参数是输入图像,第2个参数是想要移动的行的个数,第3个参数是方向,1代表纵向,2代表横向

得到的结果Y=carrace;


读取txt文件

A=load(‘C:\Users\visual\Desktop\costVol_left.txt’);

col2=A(:,2);   //读取第二列

 

find()函数的用法总结

(1)b=find(a)a是一个矩阵,查询非零元素的位置

(2)b=find(a>2),在a中找到比2大的元素

(3)b=find(a,2),找出在a中最先出现的第2个不为0的数

(4)[a1,a2]=find(a),找出a中非零元素所在的行和列,并存在a1a2

(5)[a1,a2,v]=find(a),找出a中非零元素所在的行和列,并存在a1a2中,并将结果放在v


批量处理图片

问题描述:

a=imread('d:\pic\1.jpg');%读取1 .jpg
[m n]=size(a);%获取原来图像的大小
b=rgb2gray(a);
level=graythresh(b);%获取灰度图片的阈值
c=im2bw(b,level);
imshow(c); %显示后再保存图片,大小发生变化
print -djpeg 2;
imwrite(c,['d:\pic\result\','r1.jpg']);%输出为r1.jpg
如何实现一次性读取和存储啊?


问题解决:

P = 'd:\pic\';
D = dir([P '*.jpg']);
for i = 1 : length(D)
a = imread([P D(i).name);
b=rgb2gray(a);level=graythresh(b);%获取灰度图片的阈值
c=im2bw(b,level);imshow(c); %显示后再保存图片,大小发生变化
print -djpeg 2;
imwrite(c,['d:\pic\result\','r' num2str(i) '.jpg']);%输出为ri.jpg
end

1 0
原创粉丝点击