正在做图像处理的GUI.在图像A里加一条线,可以移动,每次移动更新图像B# EE - 电子工程H*t2008-07-13 07:071 楼NJ近NYC家庭诚请保姆,照顾小孩及做简单家务.需有爱心,身体健康,入住通勤均可,有意者请Email至j***[email protected].谢谢
m*u2008-07-13 07:072 楼正在做图像处理的GUI.在图像A里加一条线,可以移动,每次移动更新图像B我现在用Matlab实现,这条可以移动的线有一个handle,所以当buttonpress的事件被抓获后,Matlab 就调用相应的程序来更新图像B。现在问题是Matlab实现太慢。我的鼠标移动了2-3个来回,都放在别的地方了,这条线才慢慢的来回挪动(这是图像B在即时更新),整个迟4-5秒,如果我移动鼠标过快的话。感觉非常不爽。我把这条线的"queue"设成"cancel",就是程序太忙得时候,就不用响应鼠标移动了,看来不是这么回事。。??请问改用什么软件来实现这个功能可以快一些?网上搜索了一下,免费的有Java, QT,现在VC也免费了。我碰过Java和VC十来天。如果想实现这个功能,该用哪个函数?我好直接去查函数去。多谢。
q*82008-07-13 07:073 楼可以到华人工作网看看呀!http://www.chinesejob888.com/朋友毕业创业开的新店,http://www.pickyournewshoes.com/ ,现在主要打知名度和信用度,价格很低廉质量绝对保证,现在很多海华都批量订购倒卖,如果你有需要的话可以直接跟我联系,我会用朋友可以接受的最低价格给你 联系QQ249526809 邮箱:q**********[email protected]
c*u2008-07-13 07:074 楼我用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也免费了。
m*u2008-07-13 07:075 楼我是直接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的时候运行,
c*u2008-07-13 07:076 楼这个很简单,没有人强迫你用hold on,1。画线不一定要用plot(),如果你用 line(),那么就不会冲掉原来的东西。2。如果你坚持要用plot(),(虽然没有任何理由这么做),那么至少你知道对应holdon, 有一个hold off,在合适的地方加入hold off,或者手动把前一个图像删除掉。关键是你不要用hold on产生好几个重叠的图像,要不然所有这些图像堵在显存里,想不慢也不可能了,【在 m******u 的大作中提到】: 我是直接update CData的。但是我用了hold on.因为图B要显示一张图像和一条线,所: 以必须用hold on.: 这种情况下怎么办呢?多谢。
m*u2008-07-13 07:077 楼谢谢。我取消了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(),(虽然没有任何理由这么做),那么至少你知道对应holdon, 有一个hold off,在合适的地方加入hold off,或者手动把前一个图像删除掉。关键是你不要用hold on产生好几个重叠的图像,要不然所有这些图像堵在显存里,想不慢也不可能了,【在 m******u 的大作中提到】: 我是直接update CData的。但是我用了hold on.因为图B要显示一张图像和一条线,所: 以必须用hold on.: 这种情况下怎么办呢?多谢。
c*u2008-07-13 07:078 楼把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,
m*u2008-07-13 07:079 楼我用profile找到原因了。我用了一句多余的axes(h)。这句就浪费了很多时间。多谢多谢探讨。【在 c*u 的大作中提到】: 把code 贴上来,除非你的处理程序本身很慢, 要不然不可能因为画一个图和一条线而变: 得很慢的.
c*u2008-07-13 07:0710 楼axes(h)本身并不浪费时间, 调用axes(h)的时候,系统默认对原来的axes调用drawnow,把显存flush出去,可能是那个drawnow花了很多时间,所以恐怕你的问题还是没有解决掉。【在 m******u 的大作中提到】: 我用profile找到原因了。: 我用了一句多余的axes(h)。这句就浪费了很多时间。: 多谢多谢探讨。