当我尝试从命令行使用imerode()时出现错误,例如
test=magic([100 100])>200;
imclose(test,strel('disk',10,0));
我收到此错误:
使用images.internal.morphmex时出错无效的MEX文件 ' /Applications/MATLAB_R2017b.app/toolbox/images/images/+images/+internal/morphmex.mexmaci64' ;: dlopen的(/Applications/MATLAB_R2017b.app/toolbox/images/images/+images/+internal/morphmex.mexmaci64, 6):找不到符号:_OSAtomicDecrement32Barrier参考自: /Applications/MATLAB_R2017b.app/bin/maci64/./libcudart.8.0.dylib
预计在:/usr/lib/libSystem.B.dylib中 /Applications/MATLAB_R2017b.app/bin/maci64 /./ libcudart.8.0.dylib。images.internal.morphop中的错误(第103行) B = images.internal.morphmex(mex_method,B,nhood,height,unpacked_M);
imdilate错误(第135行)B = images.internal.morphop(A,SE,'扩张',mfilename,varargin {:});
imclose出错(第82行) outputImage = imerode(imdilate(inputImage,se,packopt,M),se,packopt,M);
我在OS X 10.9.5上使用MATLAB R2017b。 我已检查过给定路径中的morphmex.mexmaci64(上图)。 不确定/./指的是哪里,但libcudart.8.0.dylib在maci64文件夹中。 不确定/ usr / lib / ...在哪里。
修改
我已经卸载了R2017b并安装了R2017a(为什么不安装,以防万一...)当我尝试运行相同的代码时,我现在得到了这个错误(这看起来更糟......)
在2017年11月13日星期一13:44:29检测到分段违规
配置:崩溃解码:已禁用 - 无沙箱或构建 区域路径崩溃模式:继续(默认)当前 图形驱动程序:未知硬件当前视觉:Quartz
默认编码:ISO-8859-1已部署:false主机 姓名:eduroam-206-52.nomadic.bris.ac.uk MATLAB 架构:maci64 MATLAB授权ID:1803495 MATLAB Root
:/Applications/MATLAB_R2017a.app MATLAB版本:9.2.0.556344 (R2017a)OpenGL:硬件操作系统: 达尔文13.4.0达尔文内核版本13.4.0:1月11日星期一18:17:34太平洋标准时间 2016年root:xnu-2422.115.15~1 / RELEASE_X86_64 x86_64处理器ID
:x86 Family 6 Model 69 Stepping 1,GenuineIntel虚拟机
:Java 1.7.0_75-b13与Oracle Corporation Java HotSpot(TM)64位 服务器VM混合模式窗口系统:Quartz故障数:2
异常终止:跟踪陷阱
可以上传其余信息的错误文件(此处粘贴时间太长)。
提前致谢。
答案 0 :(得分:1)
看起来像安装问题,或者可能是由于更新。
尝试在控制台中运行以下命令:
restoredefaultpath();
rehash toolboxcache;
如果一切正常,请运行:
savepath();
答案 1 :(得分:0)
原来R2017a,b与OS Mavericks不兼容。 回到R2016a。