Mathematica图片局部变色

这篇博客来源于Stack-Exchange上的一个帖子,问题描述如下:如何将图中的红球变为蓝球?

这个问题下面有很多答案,我选了最好的一个答案,代码如下

img = Import["C:/Users/1/Desktop/red.jpg"];
getReds[x_Image] := First@ColorSeparate[x, "Hue"]
isolateSphere[x_Image] := SelectComponents[Binarize[getReds[x], .9], Large]
makeMask[x_Image] := Image@Graphics[Disk @@ (1 /. ComponentMeasurements[isolateSphere[x],{"Centroid", "BoundingDiskRadius"}]),{PlotRange -> Thread[{1, #}], ImageSize -> #} &@ImageDimensions@x]
getAreaToChange[x_Image] := ImageMultiply[x, ColorNegate@makeMask[x]]
shiftColors[x_Image] := Image[ImageData[getAreaToChange[x]] /. p : {r_, g_, b_} /; r > .3 :> RotateLeft[p, 1]]
finishIt[x_Image] := ImageAdd[ImageMultiply[x, makeMask[x]], ColorConvert[shiftColors[x], "RGB"]]
{#, getReds@#, isolateSphere@#, makeMask@#, getAreaToChange@#,shiftColors@#, finishIt@#} &@img // Grid[{#[[1 ;; 2]], #[[3 ;; 5]], #[[6 ;; 7]]}] &

根据结果可以看出,代码的思路非常明确。分为提取红色通道分量,生成红球模板,然后局部转变为蓝色,最后与原图进行合成。下面是一个

对比结果,

当然,原问题下面还给了很多其他简短的答案,基本都是上述shiftColors函数的应用。考虑到都是全局处理,存在一定的失真,

就不贴上来了。

转载于:https://www.cnblogs.com/xbjiang71/p/7406201.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/371436.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在WebLogic 12c上运行RichFaces

我最初以为我可以在几个月前写这篇文章。 但是我最终被不一样的事情所淹没。 其中之一是,它无法像我在4.0版本中那样简单地启动RichFaces展示柜。 有了所有的JMS magic和不同的提供者检查,这已经成为简单构建和部署它的挑战。 无论如何,我愿意…

Spring Boot系列教程一:Eclipse安装spring-tool-suite插件

一.前言 一直使用eclipse,个人习惯选用Eclipsespring-tool-suite进行开发,特别注意Eclipse要选用对应的spring-tool-suite进行安装,这点笔者浪费了好长时间,以下为对应的版本。eclipse-kepler.4.3.1–>springsource-tool-suite…

湖南工程学院计算机网络考试,湖南工程学院 计算机网络期末试卷试题

湖南工程学院 计算机网络期末试卷试题湖南工程学院 计算机网络 期末试题(计算机10级,90%的题目)1 从逻辑功能上看,计算机网络可分为哪两个子网?答:通信子网和资源子网 2 数据链路层的最基本功能答:数据链路层的最基本的功能是向该层用户提供…

C#设计模式(11)——外观模式(Facade Pattern)

一、引言 在软件开发过程中,客户端程序经常会与复杂系统的内部子系统进行耦合,从而导致客户端程序随着子系统的变化而变化,然而为了将复杂系统的内部子系统与客户端之间的依赖解耦,从而就有了外观模式,也称作 ”门面“…

OS X Mountain Lion上的多个Java版本

在Mountain Lion之前,Java被捆绑在OS X中。似乎在升级期间,我在计算机上安装的Java 6版本被删除了。 显然,在升级过程中卸载Java的原因是Java运行时存在的安全问题。通过这种方式,您不得不安装可解决此安全问题的最新版本。 所以我…

Oracle锁机制的总结【转】

最近在研究Oracle锁机制的时候发现网上的资料鱼龙混杂将,很多将问题复杂化,让人感觉没有条理性。经过查询原始理论资料,总结如下: 在数据库理论中,我们知道。我们在执行并发访问数据库表时,如果没有任何一致…

2020暨阳学院园林计算机考研考场,【图片】2020考研,老学长教你如何规划!【计算机考研吧】_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼二、关键一步——院校选择我把各位同学的院校选择阶段分为以上几个阶段,因为考研这一年中,很多人的目标院校并不是固定不变的,而是随着不同阶段而改变的。学长我在大三下学期这一时间段内也多次更…

List Box 控件

1 //定义变量,并关联控件与变量。IDC_RecvData为控件ID,recvData为控件对应的变量名 2 CListBox recvData; 3 4 DDX_Control(pDX, IDC_RecvData, recvData); 5 6 //向List Box控件IDC_RecvData中添加一行数据 7 CString str; 8 recvData.Ad…

JavaOne 2012:向上,向上和向外:使用Akka扩展软件

在最后的社区主题演讲后,我前往希尔顿金门大桥3/4/5观看了维克多巴生 ( Viktor Klang )的( Typesafe )“上,下,外:Akka”演讲。 巴生(Klang)是Akka的技术主管…

华北科技学院计算机期末考试,华北科技学院 专业计算机 考试专用

1不能应用修剪命令“trim”进行修剪的对象是(D、文字) 。2. 命令行(B.不能随意移动)3. 布尔运算中差集的热键为(A.SU)4. 定距等分点用( C.DIST)命令5. 标高是以( B.厘米) 为单位6. 在建筑平面图中用以指明朝向的是( B.指北针)7. A3图纸的尺寸是( c.420x297)8. 既可以绘制直线&a…

redux-plain-english-workflow

https://quickleft.com/blog/redux-plain-english-workflow/转载于:https://www.cnblogs.com/skating/p/6495384.html

Spring测试支持和上下文缓存

Spring为单元测试和集成测试提供了全面的支持-通过注释来加载Spring应用程序上下文,并与JUnit和TestNG等单元测试框架集成。 由于为每个测试加载大型应用程序上下文需要时间,因此Spring智能地为测试套件缓存应用程序上下文–通常,当我们通过a…

perl6正则 4: before / after 代码断言: ?{} / !{}

<?before> <? befor XXX> 某字符在 xxx 之前 <?after > <?after XXX> 某字符之后有XXX 对应的取反分别为: <!before > <!before XXX> XXX之前没有 <!after> <!after xxx> 某字符后面不是 xxx say "foobar" ~~…

mac 下JDK 与 tomcat 的安装与配置

一.Mac下JDK的安装 1.先检测Mac是否已经安装过JDK&#xff0c;在终端中输入java 或者 javac 显示说明&#xff0c;表明已经安装过JDK&#xff0c;JDK版本查询终端键入java &#xff0d;version&#xff0c;终端会返回JDK的版本号。 2.如果没有安装JDK&#xff0c;登陆 http://w…

新型发明创造大赛计算机类,2017年发明杯全国高职高专大学生创新创业大赛

以“发明创新实现梦想、创意创业改变生活”主题活动为依托&#xff0c;把课内与课外教育相结合&#xff0c;学校教育、家庭教育与社会教育相结合&#xff0c;培养广大在校大学生的科技创新意识和实践动手能力&#xff0c;激发他们设计创造的乐趣&#xff0c;使广大大学生大胆创…

如何写出安全的API接口(参数加密+超时处理+私钥验证+Https)- 续(附demo)

转载&#xff1a;http://www.cnblogs.com/codeon/p/6123863.html 上篇文章说到接口安全的设计思路&#xff0c;如果没有看到上篇博客&#xff0c;建议看完再来看这个。 通过园友们的讨论&#xff0c;以及我自己查了些资料&#xff0c;然后对接口安全做一个相对完善的总结&#…

PrimeFaces在GlassFish 3.1.2.2上推动大气

PrimeFaces 3.4在三天前问世。 除了通常令人敬畏的新组件和更新组件之外&#xff0c;它还包括新的PrimeFaces Push框架。 基于Atmosphere&#xff0c;这为您的应用程序提供了简单的推送机制。 这是在最新的GlassFish 3.1.2.2上配置和运行它的方法。 准备工作 像往常一样&#…

部分视图跳转

var album GetDailyDeal(); return PartialView("_DailyDeal", album); 通过NuGet需要添加microsoft.jquery.unobtrusive.ajax 方法一 在BundleConfig.cs 里添加 bundles.Add(new ScriptBundle("~/bundles/jqueryajax").Include("~/Scripts/jquery…

计算机二级目录设置,word2设置标题格式,生成目录,奇偶页设置等等,适用考计算机二级办公软件,也适用于毕业论文格式设置...

word2设置标题格式,生成目录,奇偶页设置等等,适用考计算机二级办公软件,也适用于毕业论文格式设置 这是第2部分word资料 , 跟之前的第一部份word资料合为一份第二题2、在正文前按序插入节&#xff0c;使用“引用”中的目录功能&#xff0c;生成如下内容&#xff1a;(1) 第1节&a…

JBoss AS 7类加载说明

这是示例章节&#xff0c;摘自Francesco Marchioni编辑的JBoss AS 7 Configuration Deployment and Administration一书&#xff0c;该书正在运行一个名为mastertheboss.com的JBoss门户。 根据Java EE规范的要求&#xff0c;理想情况下&#xff0c;应用程序服务器应为其部署的应…