1.clipboard plus怎么用
Matlab提供了名为clipboard的函数,用于设置或读取clipboard中的文本。
这个函数有一个非常严重的限制,那就是只能操作文本。虽然使用pastespecial参数通过数据导入工具将文本表格转化为Matlab矩阵,但不管怎么说,操作的都是clipboard中的文本,不能是其它类型的数据。
这次我们对clipboard添加了一个扩展,使其能够读取clipboard中的图像对象。这个功能当然是通过Java实现的,所以想要使用它,Matlab得有Java虚拟机的支持。
clipboardex.m的全部代码如下:function dat = clipboardex(varargin)% 2013.06.26 PM 09:26% Matlab 2013a% xialulee if strcmp(varargin{1}, 'copy') clipboard(varargin{:}); return; else dat = clipboard(varargin{:}); end if ~strcmp(dat, '') return; end import java.awt.* clipb = Toolkit.getDefaultToolkit().getSystemClipboard(); df = clipb.(); data_type = 'not sure'; for idx = 1 : numel(df) if isequal(df(idx), datatransfer.DataFlavor.imageFlavor) data_type = 'image'; break; end end switch data_type case 'image' dat = clipb.getContents([]).getTransferData(datatransfer.DataFlavor.imageFlavor); grabber = image.PixelGrabber(dat, 0, 0, -1, -1, false); grabber.grabPixels(); pixels = grabber.getPixels(); isgray = isa(pixels, 'int8'); pixels = typecast(pixels, 'uint8'); if isgray pixels = reshape(pixels, dat.getWidth(), dat.getHeight()).'; else pixels = reshape(pixels, 4, dat.getWidth(), dat.getHeight()); pixels = permute(pixels, 3:-1:1); pixels = pixels(:, :, 3:-1:1); end dat = pixels; otherwise error('Not supported data type.'); end end 上面的代码中,用来获取clipboard数据的代码就两行,clipb = Toolkit.getDefaultToolkit().getSystemClipboard(); dat = clipb.getContents([]).getTransferData(datatransfer.DataFlavor.imageFlavor); 如果clipboard中的内容是图像的话,dat的类型是java.awt.image.BufferedImage。之后的代码,就是利用PixelGrabber将dat中的像素数据提取出来,构造成Matlab图像矩阵。
之所以看起来有点复杂,是因为Java什么的都是使用Row-Major,而Matlab使用Column-Major。如果图像是一副灰度图像还好说,通过矩阵转置即可完成数据的重新排列,但是含有RGB分量的图像,由于对应三维数组,需要使用permute这样的“广义转置”来排列数据。
这些内容在之前的《xialulee大战pythonchallenge——level11(续)》中就已经提到过了。 使用方法。
首先clipboard中应该有一副图像。比如,从FireFox中复制了一副图像,如下图 在Matlab中执行>> img = clipboardex('paste'); 此时,变量img就是clipboard中的图像,用imshow查看>> imshow(img)。
2.Memory Zipper Plus 怎么使用
Memory Zipper是款小巧的内存优化程序。该软件可恢复系统遗漏 的内存,并以图表的形式显示内存的使用状况。它还能检测出硬件系统的一些资料
内存管理与调校工具,帮助将视窗没有释放干净的内存的部分清除掉,并且将零散被占用的内存整合,避免系统因为内存资源被越占越多而致使当机的情形发生。此外具有CPU监测功能,利用闲置的空文件降低CPU的负荷,进而减低CPU的温度。
Memory Zipper是个系统微调程序,能有效的改进你系统的执行效率。这小程序自工作列上激活,只要用鼠标轻点一下,你就可以将某个程序结束(尤其是已经无响应的程序),强迫它将所占用的内存释放出来;当然,这过程也可以由程序来全自动操作。这程序的接口包括了一个内存使用的状态表、一个滑动杆让你决定可用内存的大小、以及一个执行「最佳化」的按钮。滑动杆的最大可用内存是137MB。这程序也可以每隔一段时间自动为你重整内存的分配状态。其它功能包括了高速缓存最佳化、以及开机时自动加载等。
3.matlab clipboard怎么用
Matlab提供了名为clipboard的函数,用于设置或读取clipboard中的文本。
这个函数有一个非常严重的限制,那就是只能操作文本。虽然使用pastespecial参数通过数据导入工具将文本表格转化为Matlab矩阵,但不管怎么说,操作的都是clipboard中的文本,不能是其它类型的数据。
这次我们对clipboard添加了一个扩展,使其能够读取clipboard中的图像对象。这个功能当然是通过Java实现的,所以想要使用它,Matlab得有Java虚拟机的支持。
clipboardex.m的全部代码如下:function dat = clipboardex(varargin)% 2013.06.26 PM 09:26% Matlab 2013a% xialuleeif strcmp(varargin{1}, 'copy') clipboard(varargin{:}); return;else dat = clipboard(varargin{:});endif ~strcmp(dat, '') return;endimport java.awt.*clipb = Toolkit.getDefaultToolkit().getSystemClipboard();df = clipb.();data_type = 'not sure';for idx = 1 : numel(df) if isequal(df(idx), datatransfer.DataFlavor.imageFlavor) data_type = 'image'; break; endendswitch data_type case 'image' dat = clipb.getContents([]).getTransferData(datatransfer.DataFlavor.imageFlavor); grabber = image.PixelGrabber(dat, 0, 0, -1, -1, false); grabber.grabPixels(); pixels = grabber.getPixels(); isgray = isa(pixels, 'int8'); pixels = typecast(pixels, 'uint8'); if isgray pixels = reshape(pixels, dat.getWidth(), dat.getHeight()).'; else pixels = reshape(pixels, 4, dat.getWidth(), dat.getHeight()); pixels = permute(pixels, 3:-1:1); pixels = pixels(:, :, 3:-1:1); end dat = pixels; otherwise error('Not supported data type.');endend 上面的代码中,用来获取clipboard数据的代码就两行,clipb = Toolkit.getDefaultToolkit().getSystemClipboard();dat = clipb.getContents([]).getTransferData(datatransfer.DataFlavor.imageFlavor);如果clipboard中的内容是图像的话,dat的类型是java.awt.image.BufferedImage。之后的代码,就是利用PixelGrabber将dat中的像素数据提取出来,构造成Matlab图像矩阵。
之所以看起来有点复杂,是因为Java什么的都是使用Row-Major,而Matlab使用Column-Major。如果图像是一副灰度图像还好说,通过矩阵转置即可完成数据的重新排列,但是含有RGB分量的图像,由于对应三维数组,需要使用permute这样的“广义转置”来排列数据。
这些内容在之前的《xialulee大战pythonchallenge——level11(续)》中就已经提到过了。 使用方法。
首先clipboard中应该有一副图像。比如,从FireFox中复制了一副图像,如下图在Matlab中执行>> img = clipboardex('paste');此时,变量img就是clipboard中的图像,用imshow查看>> imshow(img)。
转载请注明出处育才学习网 » clipboardplus怎么用(clipboardplus怎么用)