画折线图
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中非零元素所在的行和列,并存在a1,a2中
(5):[a1,a2,v]=find(a),找出a中非零元素所在的行和列,并存在a1,a2中,并将结果放在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
改变图像尺寸大小
ai=imread('H:\a1.jpg'); %ai大小为381x376
bi=imresize(ai,0.6); %bi缩放为ai的0.6倍
figure
imshow(bi)
ci=imresize(ai,[256,256]); %把ai转成256x256的大小
figure
imshow(ci)