用matlab曲线标记编程实现下图中红色记号标记的四个题目,要有程序和运行结果

Draw-a-rectangle-matlab 本程序在图像上指定位置话红色的矩形框作为标记,用在目标跟踪上很有用。 Picture Viewer 图片显示 222万源代码下载-
&文件名称: Draw-a-rectangle-matlab& & [
& & & & &&]
&&所属分类:
&&开发工具: matlab
&&文件大小: 1479 KB
&&上传时间:
&&下载次数: 0
&&提 供 者:
&详细说明:本程序在图像上指定位置话红色的矩形框作为标记,用在目标跟踪上很有用。-This procedure is specified, then the position of the red rectangle on an image as a mark for use in target tracking useful.
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&在图像上画矩形框matlab程序&&..........................\_input&&..........................\......\01.jpg&&..........................\......\02.jpg&&..........................\......\03.jpg&&..........................\......\04.jpg&&..........................\......\05.jpg&&..........................\......\06.jpg&&..........................\......\07.jpg&&..........................\......\08.jpg&&..........................\......\09.jpg&&..........................\......\10.jpg&&..........................\......\11.jpg&&..........................\......\12.jpg&&..........................\......\13.jpg&&..........................\......\14.jpg&&..........................\......\15.jpg&&..........................\......\16.jpg&&..........................\_output(自己输入框的大小)&&..........................\.........................\00001.jpg&&..........................\.........................\00002.jpg&&..........................\.........................\00003.jpg&&..........................\.........................\00004.jpg&&..........................\.........................\00005.jpg&&..........................\.........................\00006.jpg&&..........................\.........................\00007.jpg&&..........................\.........................\00008.jpg&&..........................\.........................\00009.jpg&&..........................\.........................\00010.jpg&&..........................\.........................\00011.jpg&&..........................\.........................\00012.jpg&&..........................\.........................\00013.jpg&&..........................\.........................\00014.jpg&&..........................\.........................\00015.jpg&&..........................\.........................\00016.jpg&&..........................\_output(鼠标画框)&&..........................\.................\00001.jpg&&..........................\.................\00002.jpg&&..........................\.................\00003.jpg&&..........................\.................\00004.jpg&&..........................\.................\00005.jpg&&..........................\.................\00006.jpg&&..........................\.................\00007.jpg&&..........................\.................\00008.jpg&&..........................\.................\00009.jpg&&..........................\.................\00010.jpg&&..........................\.................\00011.jpg&&..........................\.................\00012.jpg&&..........................\.................\00013.jpg&&..........................\.................\00014.jpg&&..........................\.................\00015.jpg&&..........................\.................\00016.jpg&&..........................\完整程序&&..........................\........\bb_center.m&&..........................\........\bb_draw.m&&..........................\........\bb_isdef.m&&..........................\........\demo.m&&..........................\........\Display.m&&..........................\........\frame_get.m&&..........................\........\img_alloc.m&&..........................\........\img_dir.m&&..........................\........\init_first_frame.m&&..........................\........\init_source.m&&..........................\........\win_click.m&&..........................\........\说明.txt
&输入关键字,在本站222万海量源码库中尽情搜索:4MATLAB的符号运算V4.0(精简版)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者贡献于
评价文档:
118页免费7页免费88页免费57页免费22页免费34页免费39页免费34页免费29页免费25页免费
喜欢此文档的还喜欢2页1下载券71页免费38页免费19页5下载券6页免费
4MATLAB的符号运算V4.0(精简版)|
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:374.50KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢当前位置: >>
>> 浏览文章
Matlab函数bwlabel在二值图像中标记连通区域用法介绍
文章来源:不详 作者:佚名
L = bwlabel(BW,n)
返回一个和BW大小相同的L矩阵,包含了标记了BW中每个连通区域的类别标签,这些标签的值为1、2、num(连通区域的个数)。n的值为4或8,表示是按4连通寻找区域,还是8连通寻找,默认为8。
四连通或八连通是图像处理里的基本感念:而8连通,是说一个像素,如果和其他像素在上、下、左、右、左上角、左下角、右上角或右下角连接着,则认为他们是联通的;4连通是指,如果像素的位置在其他像素相邻的上、下、左或右,则认为他们是连接着的,连通的,在左上角、左下角、右上角或右下角连接,则不认为他们连通。
[L,num] = bwlabel(BW,n)
这里num返回的就是BW中连通区域的个数。
补充:我听说过16连通,这应该是在三维空间里的概念了吧。
举例说明:
&&& 1 &&& 1 &&& 1 &&& 0 &&& 0 &&& 0 &&& 0 &&& 0
&&& 1 &&& 1 &&& 1 &&& 0 &&& 1 &&& 1 &&& 0 &&& 0
&&& 1 &&& 1 &&& 1 &&& 0 &&& 1 &&& 1 &&& 0 &&& 0
&&& 1 &&& 1 &&& 1 &&& 0 &&& 0 &&& 0 &&& 1 &&& 0
&&& 1 &&& 1 &&& 1 &&& 0 &&& 0 &&& 0 &&& 1 &&& 0
&&& 1 &&& 1 &&& 1 &&& 0 &&& 0 &&& 0 &&& 1 &&& 0
&&& 1 &&& 1 &&& 1 &&& 0 &&& 0 &&& 1 &&& 1 &&& 0
&&& 1 &&& 1 &&& 1 &&& 0 &&& 0 &&& 0 &&& 0 &&& 0
按4连通计算,方形的区域,和翻转的L形区域,有用是对角连接,不属于连通,所以分开标记,连通区域个数为3 L = bwlabel(BW,4) 复制代码 结果如下:
&&& 1 &&& 1 &&& 1 &&& 0 &&& 0 &&& 0 &&& 0 &&& 0
&&& 1 &&& 1 &&& 1 &&& 0 &&& 2 &&& 2 &&& 0 &&& 0
&&& 1 &&& 1 &&& 1 &&& 0 &&& 2 &&& 2 &&& 0 &&& 0
&&& 1 &&& 1 &&& 1 &&& 0 &&& 0 &&& 0 &&& 3 &&& 0
&&& 1 &&& 1 &&& 1 &&& 0 &&& 0 &&& 0 &&& 3 &&& 0
&&& 1 &&& 1 &&& 1 &&& 0 &&& 0 &&& 0 &&& 3 &&& 0
&&& 1 &&& 1 &&& 1 &&& 0 &&& 0 &&& 3 &&& 3 &&& 0
&&& 1 &&& 1 &&& 1 &&& 0 &&& 0 &&& 0 &&& 0 &&& 0
而8连通标记,它们是连通的: [L, num] = bwlabel(BW,8) 复制代码 L =
&&& 1 &&& 1 &&& 1 &&& 0 &&& 0 &&& 0 &&& 0 &&& 0
&&& 1 &&& 1 &&& 1 &&& 0 &&& 2 &&& 2 &&& 0 &&& 0
&&& 1 &&& 1 &&& 1 &&& 0 &&& 2 &&& 2 &&& 0 &&& 0
&&& 1 &&& 1 &&& 1 &&& 0 &&& 0 &&& 0 &&& 2 &&& 0
&&& 1 &&& 1 &&& 1 &&& 0 &&& 0 &&& 0 &&& 2 &&& 0
&&& 1 &&& 1 &&& 1 &&& 0 &&& 0 &&& 0 &&& 2 &&& 0
&&& 1 &&& 1 &&& 1 &&& 0 &&& 0 &&& 2 &&& 2 &&& 0
&&& 1 &&& 1 &&& 1 &&& 0 &&& 0 &&& 0 &&& 0 &&& 0
下一篇:没有了
中国高校自动化网 All Rights Reserved.
信息产业部备案号:查看: 2394|回复: 10|关注: 0
关于程序中符号变量x1,x2等如何用x(1),x(2)等代换的问题
问个matlab中的小问题:
目前我已经算出符号变量的表达式子,例如下面的程序:
n=5;%定义变量个数
x=sym(ones(1,n)); %给符号变量赋初值
& & x(i)=['x' num2str(i)];%定义符号变量的形式为x1,...,xn
fx=sum(exp(x)-x)
运行结果是:
exp(x1)-x1+exp(x2)-x2+exp(x3)-x3+exp(x4)-x4+exp(x5)-x5
问题是:如何将fx中的符号变量x1,x2,x3,x4,x5用变量x(1),x(2),x(3),x(4),x(5)代替呢?
非常感谢!
关注者: 1
你想得到什么结果?
& & x(i)=['x' num2str(i)];%定义符号变量的形式为x1,...,xn
此式表明x(1)=x1,...
非常感谢大家回复,由于在求解优化问题,需要求解Jacobian矩阵和Hessian矩阵,所以先把变量定义成了符号变量x1,x2,等,但是程序接口用的变量形式都是x(1),x(2),等形式,这个时候程序不识别提示出错,因此需要通过程序代换再让x1,x2,....变回x(1),x(2)的形式
x(1)&&,x(2)在matlab里是一种运算,表示的是找出x变量中的第一个元素,第2个元素(按列数的)。用X1,x2这样就很好的。
关注者: 6
本帖最后由 kaaaf123 于
17:31 编辑
LZ大概是这个意思
clc
clear all
n=5;%定义变量个数
x=sym(ones(1,n)); %给符号变量赋初值
for i=1:n
& & x(i)=['x' num2str(i)];%定义符号变量的形式为x1,...,xn
end
fx = char(sum(exp(x)-x));
for i = n:-1:1
& & fx = subs(fx,['x' num2str(i)],['x(' num2str(i) ')']);
end
fx = eval(['@(x)' char(fx) ';']);
fx(1:5)复制代码
kaaaf123 发表于
LZ大概是这个意思
非常感谢,是这个意思!多谢多谢
来这里真不错 大家都很热心啊
kaaaf123 发表于
LZ大概是这个意思
大侠,一维的对的,但为什么如果是函数矩阵就出错呢。比如我按照你的方法:
G =@(x0)matrix([[4*x0(1)*(x0(1)^2+......2+x0(75)^2-100)]]);
G(x0)&&时出错
Undefined function 'matrix' for input arguments of type 'double'.
帮帮忙啊,大侠,谢谢
kaaaf123 发表于
LZ大概是这个意思
大侠,一维的对的,但为什么如果是函数矩阵就出错呢。比如我按照你的方法:
G =@(x0)matrix([[4*x0(1)*(x0(1)^2+......2+x0(75)^2-100)]]);
G(x0)&&时出错
Undefined function 'matrix' for input arguments of type 'double'.
帮帮忙啊,大侠,谢谢
Powered by下次自动登录
现在的位置:
& 综合 & 正文
matlab练习程序(二值图像连通区域标记法,一步法)
  这个只需要遍历一次图像就能够完全标记了。我主要参考了和,这两个把原理基本上该介绍的都介绍过了,我也不多说什么了。一步法相比两步法真是清晰又好看,似乎真的比两步法要好很多。
  代码如下:
img=imread('liantong.bmp');
imgn=img&128;
s=uint8(1-imgn);
s=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0;
%这个矩阵是维基百科中的矩阵
0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0;
0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0;
0 0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0;
0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0;
0 0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0;
0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
imshow(mat2gray(s));
[m n]=size(s);
tmp=zeros(m,n);
queue_head=1;
queue_tail=1;
neighbour=[-1 -1;-1 0;-1 1;0 -1;0 1;1 -1;1 0;1 1];
%和当前像素坐标相加得到八个邻域坐标
for i=2:m-1
for j=2:n-1
if s(i,j)==1 && tmp(i,j) ==0
q{queue_tail}=[i j];
%用元组模拟队列,当前坐标入列
queue_tail=queue_tail+1;
while queue_head~=queue_tail
pix=q{queue_head};
%8邻域搜索
pix1=pix+neighbour(k,:);            if pix1(1)&=2 && pix1(1)&=m-1 && pix1(2) &=2 &&pix1(2)&=n-1
  if s(pix1(1),pix1(2)) == 1 && tmp(pix1(1),pix1(2)) ==0
%如果当前像素邻域像素为1并且标记图像的这个邻域像素没有被标记,那么标记
  tmp(pix1(1),pix1(2))=
  q{queue_tail}=[pix1(1) pix1(2)];
  queue_tail=queue_tail+1;
            end
queue_head=queue_head+1;
%清空队列,为新的标记做准备
label=label+1;
queue_head=1;
queue_tail=1;
figure,imshow(mat2gray(tmp))
下面是效果图,就效果而言和没什么区别的。
这两篇算是把二值图像连通标记给搞定了。
&&&&推荐文章:
【上篇】【下篇】}

我要回帖

更多关于 matlab曲线标记 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信