Redian新闻
>
正在做图像处理的GUI.在图像A里加一条线,可以移动,每次移动更新图像B
avatar
正在做图像处理的GUI.在图像A里加一条线,可以移动,每次移动更新图像B# EE - 电子工程
H*t
1
NJ近NYC家庭诚请保姆,照顾小孩及做简单家务.需有爱心,身体健康,入住通勤均可
,有意者请Email至j***[email protected].谢谢
avatar
m*u
2
正在做图像处理的GUI.在图像A里加一条线,可以移动,每次移动更新图像B
我现在用Matlab实现,这条可以移动的线有一个handle,所以当butt
onpress的事件被抓获后,Matlab 就调用相应的程序来更新图像B。
现在问题是Matlab实现太慢。
我的鼠标移动了2-3个来回,都放在别的地方了,这条线才慢慢的来回挪动(这是图
像B在即时更新),整个迟4-5秒,如果我移动鼠标过快的话。感觉非常不爽。
我把这条线的"queue"设成"cancel",就是程序太忙得时候,就不用响
应鼠标移动了,看来不是这么回事。。??
请问改用什么软件来实现这个功能可以快一些?
网上搜索了一下,免费的有Java, QT,现在VC也免费了。
我碰过Java和VC十来天。如果想实现这个功能,该用哪个函数?我好直接去查函
数去。
多谢。
avatar
q*8
3
可以到华人工作网看看呀!http://www.chinesejob888.com/
朋友毕业创业开的新店,http://www.pickyournewshoes.com/ ,现在主要打知名度和信用度,价格很低廉质量绝对保证,现在很多海华都批量订购倒卖,如果你有需要的话可以直接跟我联系,我会用朋友可以接受的最低价格给你 联系QQ249526809 邮箱:q**********[email protected]
avatar
c*u
4
我用MATLAB GUI干同样的事情很快啊,感觉不出任何迟滞,可能你的程序有问题,贴上
来看看,不过我的图B只有700*700 pixel, 在GUI上只有1/2屏幕大。如果你的是2000*
2000,那我就不知道了,
关键的问题是更新图像B和线的时候不可以用image()或者plot(),而是只更新数据,如
果你有什么hold on, 那就更糟糕了,
如果你那个程序本身很慢,那你就让那程序只在button_up的时候运行,

【在 m******u 的大作中提到】
: 正在做图像处理的GUI.在图像A里加一条线,可以移动,每次移动更新图像B
: 我现在用Matlab实现,这条可以移动的线有一个handle,所以当butt
: onpress的事件被抓获后,Matlab 就调用相应的程序来更新图像B。
: 现在问题是Matlab实现太慢。
: 我的鼠标移动了2-3个来回,都放在别的地方了,这条线才慢慢的来回挪动(这是图
: 像B在即时更新),整个迟4-5秒,如果我移动鼠标过快的话。感觉非常不爽。
: 我把这条线的"queue"设成"cancel",就是程序太忙得时候,就不用响
: 应鼠标移动了,看来不是这么回事。。??
: 请问改用什么软件来实现这个功能可以快一些?
: 网上搜索了一下,免费的有Java, QT,现在VC也免费了。

avatar
m*u
5
我是直接update CData的。但是我用了hold on.因为图B要显示一张图像和一条线,所
以必须用hold on.
这种情况下怎么办呢?多谢。

【在 c*u 的大作中提到】
: 我用MATLAB GUI干同样的事情很快啊,感觉不出任何迟滞,可能你的程序有问题,贴上
: 来看看,不过我的图B只有700*700 pixel, 在GUI上只有1/2屏幕大。如果你的是2000*
: 2000,那我就不知道了,
: 关键的问题是更新图像B和线的时候不可以用image()或者plot(),而是只更新数据,如
: 果你有什么hold on, 那就更糟糕了,
: 如果你那个程序本身很慢,那你就让那程序只在button_up的时候运行,

avatar
c*u
6
这个很简单,没有人强迫你用hold on,
1。画线不一定要用plot(),如果你用 line(),那么就不会冲掉原来的东西。
2。如果你坚持要用plot(),(虽然没有任何理由这么做),那么至少你知道对应hold
on, 有一个hold off,在合适的地方加入hold off,或者手动把前一个图像删除掉。关
键是你不要用hold on产生好几个重叠的图像,要不然所有这些图像堵在显存里,想不
慢也不可能了,

【在 m******u 的大作中提到】
: 我是直接update CData的。但是我用了hold on.因为图B要显示一张图像和一条线,所
: 以必须用hold on.
: 这种情况下怎么办呢?多谢。

avatar
m*u
7
谢谢。
我取消了hold on, plot,用line。
还是一样的慢,有迟滞现象。
我以前用hold on,在axes B上也只始终画两个objects,一个是图像,一个是一条线。
然后每次用set data来更新图像和线。
没有用hold on产生好几个重叠的图像。觉得hold on不是关键。
发信人: cxu (Salmon Fish), 信区: EE
标 题: Re: 正在做图像处理的GUI.在图像A里加一条线,可以移动,每次
发信站: BBS 未名空间站 (Tue Jul 22 09:35:32 2008)
这个很简单,没有人强迫你用hold on,
1。画线不一定要用plot(),如果你用 line(),那么就不会冲掉原来的东西。
2。如果你坚持要用plot(),(虽然没有任何理由这么做),那么至少你知道对应hold
on, 有一个hold off,在合适的地方加入hold off,或者手动把前一个图像删除掉。关
键是你不要用hold on产生好几个重叠的图像,要不然所有这些图像堵在显存里,想不
慢也不可能了,

【在 m******u 的大作中提到】
: 我是直接update CData的。但是我用了hold on.因为图B要显示一张图像和一条线,所
: 以必须用hold on.
: 这种情况下怎么办呢?多谢。

avatar
c*u
8
把code 贴上来,除非你的处理程序本身很慢, 要不然不可能因为画一个图和一条线而变
得很慢的.

【在 m******u 的大作中提到】
: 谢谢。
: 我取消了hold on, plot,用line。
: 还是一样的慢,有迟滞现象。
: 我以前用hold on,在axes B上也只始终画两个objects,一个是图像,一个是一条线。
: 然后每次用set data来更新图像和线。
: 没有用hold on产生好几个重叠的图像。觉得hold on不是关键。
: 发信人: cxu (Salmon Fish), 信区: EE
: 标 题: Re: 正在做图像处理的GUI.在图像A里加一条线,可以移动,每次
: 发信站: BBS 未名空间站 (Tue Jul 22 09:35:32 2008)
: 这个很简单,没有人强迫你用hold on,

avatar
m*u
9
我用profile找到原因了。
我用了一句多余的axes(h)。这句就浪费了很多时间。
多谢多谢探讨。

【在 c*u 的大作中提到】
: 把code 贴上来,除非你的处理程序本身很慢, 要不然不可能因为画一个图和一条线而变
: 得很慢的.

avatar
c*u
10
axes(h)本身并不浪费时间, 调用axes(h)的时候,系统默认对原来的axes调用drawnow
,把显存flush出去,可能是那个drawnow花了很多时间,所以恐怕你的问题还是没有解
决掉。

【在 m******u 的大作中提到】
: 我用profile找到原因了。
: 我用了一句多余的axes(h)。这句就浪费了很多时间。
: 多谢多谢探讨。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。