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.pswp.cn/news/371436.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/371436.shtml
英文地址,請注明出處:http://en.pswp.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;應用程序服務器應為其部署的應…