标
题】:
Scilab
工具箱的初步开发和使用
【关键字】:
Scilab
Scilab
工具箱的初步开发和使用
大家一般都是比较熟悉
Matlab
,但是有些时候下必须使用其它的软件
比如,如果没有授权的
Matlab,VC
,与一些同行交流时
而且,我们越来越依赖于几个商业软件了
长此以往,我们就被套在
Matlab
上了
好在开源人士和一些开明的团体
提供了一些别的选择,
GNU
有
Octave,
语法和
Matlab
差不多,不过工具箱很少,开发也不是很活跃
感觉上
GNU
不能在方方面面都做到最好
法国国立自动化研究所开发了
Scilab
,它的应用越来越广了
尤其在中科院自动化所的中法联合实验室的推广下
Scilab
的工具箱有一些,但是还是太少
比较实用的有图像处理工具箱
SIP
,是由巴西人写的
包含了一个很有用的工具集
中科院的几个研究生也写了一个视频和图像处理的工具箱
不过,他们用到了
Intel
的
opencv
,这在
FreeBSD
下是没有的
因此对
BSD
一族真是扼腕痛惜的事
前几天装了一下
SIP
,
delphij
建议写个
port
,
目前太懒,正在做一个图像处理的项目,完了之后估计会写吧
首先要下在
ANIMAL
最新的版本
,configure
没问题
make
时
,src
目录下的大部分
C
文件都要注释掉
#include <malloc.h>
这一句
祥见
scilab port
的
Makefile
,里面又一个替换的语句,就是针对这个情况
make install
就把库文件和一些头文件放到
/usr/local/lib/animal
和
/usr/local/include/animal
里去了
然后下载
Scilab Image Processing Toolbox 4.0rc-1
make
时
,src
里的
sip_config.h
有一行
UndefinedCompressQuality,
两头加上引号
""
unwrap_***.c
那个文件有一个变量
s,
前面的声明多打了一个字符
u
即
ulong s=0
改为
long s=0
然后
make OK
make install
安装到
/usr/local/lib/scilab/contrib/sip
里面
起动
scilab
exec "/usr/local/lib/scilab/contrib/sip/loader.sce"
就起动了
SIP
了
新的
SIP
里有
rgb2hsv
之类的函数,有
hough
变换、
Radon
变换
真是解了我燃眉之急
在没有
Matlab
的日子里真是痛苦啊,不过一点点会过去的
最近的项目要用
wavelet
,
找遍了
Internet
,免费的
wavelet C
代码真是很少
做这些研究的都是只对他们的研究项目感兴趣,不想把工具箱做完善,
其实这也没什么可抱怨的,人家为什么要为你服务呢
最后发现了
GNU Scientific Library
里有
wavelet
的库
虽然也不完善,但是总比没有好
我就打算写一个接口程序,在
Scilab
里调用
GSL
的库
开始写
C
接口程序
第一个难题,写
Perl
写多了
感觉
C
约束太多
独立的写了一个程序,
C
调用没问题
但是在
scilab
里一调用就退出
scilab
里如何能
gdb
呀?:
-
(
于是就写
printf
给控制台发消息吧
发现传给
C
的字符参数有问题
原来是传双精度数据用
stk
,字符用
cstk
我都用了
stk
,还有,没有指定输出变量的存储开的大小
大致格式是
intgsldwt(char *fname)
{
检查输入变量,输出变量的个数
输入输入变量,检查维数
创建输出变量,给出维数,内存开多大
调用
C
程序
gsldwt();
}
gsldwt()
{
数学运算
}
从
/usr/local/lib/scilab/examples/interface-tutorial-so
里拷一个
builder.sce
到当前目录
改为自己要连接的库
启动
scilab
执行
builder.sce
和
loader.sce
然后就可以用了
大致步骤是这样,具体还要调整
SIP
是用的
intersci
的接口
要把
C
转成
Fortran
的
因为
Scilab
低层是
Fortran
的,
以后也徐会写一个
intersci
的接口吧
现在麻烦点,总比以后被
matlab
卡了脖子要好啊
相关文章
- 使用binary-wang开发微信小程序的登录和微信支付
- OpenGL学习笔记(2)-- openGL的配置和初步使用
- HarmonyOS开发,console.log和hilog的区别,如何选择使用?
- uniapp 开发APP 安卓手机中 在使用nvue时候 border的dashed和radius可能会有冲突的解决办法
- ios开发不能不知的动态修复bug补丁第三方库JSPatch 使用学习:JSPatch导入、和使用、.js文件传输加解密
- IOS开发 ARC和非ARC下使用Block属性的问题
- java开发中常见锁的使用场景和代码示例
- (转)基于MVC4+EasyUI的Web开发框架经验总结(5)--使用HTML编辑控件CKEditor和CKFinder
- 在运行程序时报错:"如果在 Code First 模式下使用,则使用 T4 模板为 Database First 和 Model First 开发生成的代码可能无法 正常运行。若要继续使用 Database First 或 Model First,请确保在执行应用程序的 config 文件中指 定 Entity Framework 连接字符串。若要将这些从 Database First 或 Mod
- 如何利用Docker和cpolar在Windows上搭建并远程使用个人开发工具箱