周末这让我很烦恼:什么是解决那些Waldo的好方法? [ 'Wally'在北美之外]使用Mathematica(图像处理和其他功能)进行拼图?
这是我到目前为止的功能,它通过调暗一些非红色来减少视觉复杂度:
whereIsWaldo[url_] := Module[{waldo, waldo2, waldoMask},
waldo = Import[url];
waldo2 = Image[ImageData[
waldo] /. {{r_, g_, b_} /;
Not[r > .7 && g < .3 && b < .3] :> {0, 0,
0}, {r_, g_, b_} /; (r > .7 && g < .3 && b < .3) :> {1, 1,
1}}];
waldoMask = Closing[waldo2, 4];
ImageCompose[waldo, {waldoMask, .5}]
]
Run Code Online (Sandbox Code Playgroud)
以及这个"有效"的网址示例:
whereIsWaldo["http://www.findwaldo.com/fankit/graphics/IntlManOfLiterature/Scenes/DepartmentStore.jpg"]
Run Code Online (Sandbox Code Playgroud)
(Waldo是收银台):

这与6月份的早期问题有关:
我有一个自定义混合分布使用第二个自定义分布定义,跟随@Sasha过去一年的许多答案中讨论的行.
定义分布的代码如下:
nDist /: CharacteristicFunction[nDist[a_, b_, m_, s_],
t_] := (a b E^(I m t - (s^2 t^2)/2))/((I a + t) (-I b + t));
nDist /: PDF[nDist[a_, b_, m_, s_], x_] := (1/(2*(a + b)))*a*
b*(E^(a*(m + (a*s^2)/2 - x))* Erfc[(m + a*s^2 - x)/(Sqrt[2]*s)] +
E^(b*(-m + (b*s^2)/2 + x))*
Erfc[(-m + b*s^2 + x)/(Sqrt[2]*s)]);
nDist /: CDF[nDist[a_, b_, m_, s_],
x_] := ((1/(2*(a + b)))*((a + b)*E^(a*x)*
Erfc[(m - x)/(Sqrt[2]*s)] -
b*E^(a*m + …Run Code Online (Sandbox Code Playgroud) 我们都知道Mathematica很棒,但它也经常缺乏关键功能.您在Mathematica中使用哪种外部包/工具/资源?
我将编辑(并邀请任何其他人也这样做)这个主要帖子包括专注于科学研究的一般适用性的资源,并且尽可能多的人会觉得有用.随意贡献任何东西,甚至是小代码片段(正如我在下面做的时间例程).
此外,在Mathematica 7及其他您发现自己,或从一些纸张/网站挖出的无证和有用的功能是非常受欢迎的.
请提供简短描述或评论为什么有什么好东西或它提供的实用程序.如果您使用会员链接链接到亚马逊上的书籍,请提及它,例如,在链接后面加上您的姓名.
包:
LevelScheme是一个大大扩展Mathematica生产美观图的能力的软件包.我使用它,如果没有其他任何东西,那么对框架/轴刻度的大大改进控制.它的最新版本称为SciDraw,它将在今年的某个时候发布.Presentation Package(50美元 - 免费更新)grassmannOps软件包提供了使用Grassmann变量和具有非平凡换向关系的算子进行代数和微积分的资源.GrassmannAlgebra与格拉斯曼(Grassmann)和克利福德代数(Clifford algebras)合作的包和书.工具:
MASH是Daniel Reeves出色的Perl脚本,主要为Mathematica v7提供脚本支持.(现在-script可以选择使用Mathematica 8制作.)alternate Mathematica shell与GNU的readline输入(使用python,*nix中只)资源:
MathSource对于各种应用程序,Wolfram自己的存储库有很多有用的缩小笔记本.另请参阅其他部分,例如
Current Documentation, Courseware 讲座, Demos为了演示.在数学维基教科书.
图书:
我们尝试在Mathematica中执行以下操作:
RMagick从图像中删除白色背景并使其透明
但实际照片看起来很糟糕(就像图像周围有光环).
这是我们到目前为止所尝试的:
unground0[img_] := With[{mask = ChanVeseBinarize[img, TargetColor->{1.,1.,1.}]},
Rasterize[SetAlphaChannel[img, ImageApply[1-#&, mask]], Background->None]]]
Run Code Online (Sandbox Code Playgroud)
这是一个例子.
原始图片:

没有背景的白色背景替换图像(或者,为了演示目的,粉红色背景):

什么想法摆脱光环?调整像LevelPenalty这样的东西,我只能以丢失一些图像为代价来消除光环.
编辑:所以我可以比较赏金的解决方案,请像上面那样构建你的解决方案,即一个名为unground的自包含函数,它可以获取图像并返回具有透明背景的图像.非常感谢大家!
我是斯蒂芬·沃尔夫勒姆(Stephen Wolfram)的忠实粉丝,但他绝对不会羞于吹响自己的号角.在许多参考文献中,他将Mathematica称为不同的符号编程范例.我不是Mathematica用户.
My questions are: what is this symbolic programming? And how does it compare to functional languages (such as Haskell)?
haskell programming-languages functional-programming wolfram-mathematica
Mathematica笔记本当然是纯文本文件 - 期望他们应该使用版本控制系统(在我的情况下使用git,虽然我怀疑特定系统很重要)似乎是合理的.但事实是任何.nb文件都充满了缓存信息,时间戳和其他各种元数据.它的一团糟.
这意味着可以进行有限的版本控制 - 提交和回滚工作正常.但是,合并是一场灾难.Mathematica不会打开包含合并标记的文件,文本编辑器无法通过.nb文件.
有没有人有运气将笔记本置于版本控制之下?怎么样?
该mathematica.SE目前正处于内测阶段,并会在几天内对公众开放.Stack Overflow和相关站点使用prettify.js,但Mathematica不是受支持的语言.为我们的网站提供自定义突出显示脚本真是太棒了,我请求JavaScript和CSS社区帮助开发这样的脚本和随附的CSS.
我在下面列出了一些基本要求,它捕获了Mathematica默认突出显示方案的大部分功能(忽略只有内部解析器才知道的东西).我也一般地命名颜色 - 可以从我提供的屏幕截图中选取十六进制颜色代码(下面进一步说明).我还在屏幕截图中添加了代码示例,以便人们可以测试它.
注释
这些输入为(* comment *).所以这些之间的任何内容都应以灰色突出显示
字符串
输入为"string"(不支持单引号),并应以粉色突出显示.
运算符/简写符号
除标准之外+, -, *, /, ^, ==,Mathematica还有其他几个运算符和简写符号.最常遇到的是:
@, @@, @@@, /@, //@, //, ~, /., //., ->, :>, /:, /;, :=, :^=, =.,
&, |, ||, &&, _, __, ___, ;;, [[, ]], <<, >>, ~~, <>
Run Code Online (Sandbox Code Playgroud)
这些以及括号,括号和括号都应以黑色突出显示.
图案对象和狭槽
模式对象以字母开头,并具有任一_或__或___附接,例如像x_,x__和x___.这些也可以在下划线后面添加其他字母x_abc,等等.所有这些都应以绿色突出显示.
槽是#和## …
如果您已经使用Mathematica一段时间,您可能已经加入了文档中心.在这些页面中总会找到新的东西.让它成为一个函数的选项,或者只是一些在某些时候似乎对你没用的例子.
您可能已经编写了包含您始终使用的专用函数的软件包.有时您可能会想到一个与您的功能一起使用的简洁示例,但很可能它最终被遗忘在硬盘中的某个地方.如果您在考虑它的那一刻就将其写入文档,那么您可能不会在以后拼命寻找它.
出于这个原因,我想知道如何以编程方式将Mathematica文档中心的文档集成到您自己的函数中.这个问题是为了探索如何调整文档.如果您有编写的脚本可以帮助您执行此操作,请与社区分享.
对于这个问题,Wolfram的Workbench不是一个可接受的解决方案.一切都必须通过Mathematica的简单安装完成.解决方案应涵盖以下几点:
?SymbolSearch: Symbol这是一个非常广泛的主题,我有1,2和3的解决方案.我缺少第4点.那么请告诉我们,您如何使用文档中心记录您的功能?
我添加了另一个答案.希望这个答案对于Mathematica的用户用他们的包编写文档页面更令人鼓舞.我认为编写文档页面对应用程序编写者以及应用程序的用户都是有益的.如果你下载我写的软件包,我建议你按照教程进行操作,这样你就可以看到每一步都会发生什么.这将为您未来的项目提供宝贵的经验.
自从我写这个软件包以来,有几个人对这个软件包很感兴趣.我已将软件包上传到Github:https://github.com/jmlopez-rod/ApplicationMaker.如果您想成为存储库的贡献者,请与我联系.
这是对所有mathematica标记粉丝的挑战.让我们通过创建一个imgur上传器将图像插入到Mathematica的SO帖子中更加方便.
我们如何创建一个imgur[g_]将光栅化其参数的函数(确保最终大小不超过StackOverflow帖子的宽度),将其转换为PNG,将其上传到imgur,并返回准备粘贴的MarkDown行,如?
有用的参考:
我没有调整后一种方法来上传图像而不先将其导出到文件中.
警告,小心使用!StackOverflow使用单独的imgur安装,可以无限期地保留图像.如果你使用主要的imgur,如果没有人看到它们,图像将在6个月后消失.不幸的是,截至2011年11月,似乎没有正式的方式以编程方式将图像上传到StackOverflow.
更新: 请参阅下面的解决方案,直接上传到StackOverflow .
我的任务是使用Mathematica通过JSP使用HTTP POST和XML与第三方的Web服务器进行交互.我需要发送的示例:
<html>
<head></head>
<body>
<form method="post" action="http://www. ... .com/login.jsp">
<textarea name="xml" wrap="off" cols="80" rows="30" spellcheck="false">
<loginInfo>
<param name="username" type="string">USERNAME</param>
<param name="pwd" type="string">PASSWORD</param>
</loginInfo>
</textarea>
<input type="hidden" name="Login" value="1"/>
<input type="submit" name="go" value="go" />
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我将收到的示例(XML):
<UserPluginInfo>
<PluginInfo>
<param name="pluginUid" type="string">1</param>
</PluginInfo>
<UserInfo>
<param name="username" type="string">USERNAME</param>
</UserInfo>
</UserPluginInfo>
Run Code Online (Sandbox Code Playgroud)
我发现Robert Raguet-Schofield在2009年撰写了一篇关于与Twitter交互的博客,该博客使用J/Link访问Java来执行HTTP POST并处理响应.
我的问题是,这是完成我的任务的最佳方法,还是自2009年以来Mathematica发展并且有更好的方法(更直接)完成我的任务?