2013-11-25 1 views
2

Mathematica 예제를 작동 시키려고합니다. 그것은 Theo Gray's blog에있는 것입니다. Mathematica 9.0에서는 작동하지 않습니다. 이미 stackoverflow in mathematica 8.0에 대한 답변을 검색했습니다. 나는 heike이 준 코드를 사용합니다.Photo Mathematica의 모자이크 : 2008 년의 예제가 Mathematica 9에서 작동하지 않습니다.

imagePool =Map[With[{i = Import[#]}, {i, [email protected][Flatten[ImageData[i], 1]]}] &,FileNames["/Users/xunyanan/Desktop/webwx_img/*.jpg"]]; 
closeMatch[c_] :=RandomChoice[Nearest[imagePool[[All, 2]] -> imagePool[[All, 1]], c, 20]] 
ImageAssemble[Map[closeMatch, ImageData[Import["/Users/xunyanan/Desktop/me.tif"]], {2}]] 

나는 거의 성공적으로 실행 생각 응답 스크린 샷 :. 나는 "연락처보기 전체 출력"을 클릭 out content

. 나는 아래 또는 티카와 같은 결과를 얻을 것입니다 9.0 종료 오프 정상 스크린 샷 : enter image description here

내가 experience.so 누구 작동이 코드의 버전을 제안 할 수 있습니다하지 않은, 지금 티카 9.0 사용 Mathematica 9 용? 네가 나에게 몇 가지 제안을 해줄 수있어서 고맙다.

여러분 께이 질문을 편집 해 주셔서 감사합니다. 내 PC ENV : 당신이 imagePool을 위해 사용하고있는 이미지가 모든 채널 같은 수 없기 때문에 맥 OS X의 버전 주석 노트 10.9과 매스 매 티카 9.0

+0

@Cole 감사, 나쁜 오류 – xunyn

+0

@Cole 당신은 알고 계십니까 이 사람들에게 질문을 게시하는 방법 – xunyn

+0

나는 wh 에테르 당신은 스택 오버플로, @ 그들의 이름을 언급 이외의 할 수 있습니다 – Cole

답변

1

, 당신의 문제이며, 그것은 Nearest 기능을 뒤집어 놓는 것 . 아마이 문제를 해결하는 쉬운 방법은 다음과 같습니다 당신이 이미지를 가져올 때

imagePool = Map[With[{i = Import[#]}, {i, 
    [email protected][Flatten[ImageData[RemoveAlphaChannel[i]], 1]]}] &, 
    FileNames["*.png", "/tmp"]] 

, 즉

RemoveAlphaChannel을 적용 할 수 있습니다. 원본 이미지에도 동일한 예방 조치를 적용하는 것이 현명합니다.

스팟의 차이 :

전 (RemoveAlphaChannel없이) :

before

후 :

after

+0

도 대상 이미지를 변경해야합니다. – agentp

+0

@ 좋은 아이디어. 나는 최초의 StackExchange 질문에 대한 좋은 기억을 가지고 있습니다.:) – cormullion

+0

대답에 대한 @cormullion 감사합니다, 그것은 작동 할 수 있습니다 – xunyn

관련 문제