2011-03-08 7 views
1

저는 현미경과 같이 이미징 하드웨어를 제어하는 ​​데 사용되는 소프트웨어에 대한 작업을 수행했습니다.이 소프트웨어는 때로는 시간을 잡기가 어렵습니다. 즉, 계측기에 대한 액세스가 필요한 새로운/다른 알고리즘을 테스트하는 것은 어렵습니다. 이 테스트 목적 중 일부에 사용할 수있는 합성 계측기를 만들고 싶습니다. 일부 종류의 프랙탈 이미지 생성을 사용하여 합성 이미지를 만드는 방법을 생각했습니다. 핵심은 일종의 결정 론적 방식으로 다양한 '배율'및 위치에서 지형지 물을 생성 할 수있는 것입니다. 테스트중인 알고리즘 중 일부는 이전에 '이미징'된 영역을 초점 이동/확대/재배치해야 할 수 있기 때문입니다. 이베이스 이미지 위에 나는 어떤 악기의 결함 (초점, 잡음, 채도 등)이든지간에 적용 할 수 있습니다.프랙탈 현미경 시뮬레이터

저는 기본 이미지에 대한 우수한 프랙탈 알고리즘을 선택/구현하는 방법에 대해 약간의 손실이 있습니다. 어떤 도움을 주시면 감사하겠습니다. 다음과 같은 특성을 지닌 것이 바람직합니다.

  1. 새로운 이미지 영역을 빠르게 렌더링하십시오.
  2. 가능한 한 많은 위치와 눈금에서 상당히 넓은 '기능'범위.
  3. 결정적이어야합니다 (그러나 임의 시작 매개 변수로 초기화 됨).
  4. 이미지를 '실제'이미지처럼 보이게 조정할 수 있습니다.

항목 2는 중요합니다. 예를 들어 커다란 부드럽거나 비어있는 영역이있는 맨델 브로 트 세트는 합성 범위를 제어하는 ​​소프트웨어가 이러한 영역 중 하나에 해당 될 수 있기 때문에 좋지 않을 수 있습니다.

지금까지 만델 브로와 같은 것을 사용했지만 무작위로 두 개 이상의 프랙탈 세트를 이동/회전/확대 및 병합하여 더 완벽한 '기능'범위를 얻으려고 생각했습니다.

나는 또한 프랙탈 불꽃 알고리즘의 이미지를 보았고, 유용하고 (그리고보기 좋을 것 같은) 이미지를 생성하는 것처럼 보인다.

마지막으로, 나는 일시적인 입자 시뮬레이션을 사용하여 더 많은 셀과 같은 이미지 (현재의 이미징 타겟)를 생성하는 방법을 생각해 보았습니다. 그러나이 접근법을 사용하여 작업 할 수 있는지 확실하지 않습니다. 다른 요구 사항들.

편집 : @ 제프리 - PSRNG를 완벽하게 제어 할 수있는 한 지형 생성이 길일지도 모릅니다. 아마도 내가 저장 한 초기 시드 + x 위치 + y 위치를 사용하여 임의의 숫자를 생성 할 수 있습니까? 그러나 언급 한대로 기초적인 지형을 코스 스 스케일로 생성하고 특정 사전 결정된 '배율'을 제외하고는이베이스에 새로운 결정 론적 무작위 변형을 추가하는 것 이외에 저울을 가로 질러 지형을 일관되게 생성하는 방법을 확신하지 못합니다. . 또한 다음 레벨의 지형을 생성 할 때 조심해야합니다. 너무 공격적이라면 더 거친 레벨에서 결과를 적절히 표시하고 생성해야하기 때문에 처음에는 더 정교한 스케일로부터의 통합이 더 암묵적으로 다루어지기 때문에 더 전통적인 '프랙탈'에 기대고 있었다.

+0

저는 여러분이 성취하고자하는 것에 대해 자신이 없습니다. 현미경 소프트웨어를 검증하거나 교육/데모 용 "가상"현미경을 만들고 싶습니까? – stefan

+0

IRL이 작동하는지 확인하기 위해 소중한 실제 악기 시간을 사용하기 전에 소프트웨어 알고리즘을 X 단계의 확실성, 즉 90 %로 평가하고 싶습니다. 초점 이탈, 부정확 한 움직임, 카메라 노이즈와 같은 현미경 효과를 시뮬레이션하기 위해 기본 이미지를 수정하는 경우 이전에이 모든 것을 다뤄 봤기 때문에 훨씬 확신이 있습니다. – Cyclone

답변

0

프랙탈 지형 생성 알고리즘의 기본 개념은 각 눈금마다 이미지를 별도로 작성하는 것입니다. 경관의 경우 쉽습니다. 높이 값의 작은 배열을 만들고 임의로 설정합니다. 그런 다음 더 큰 배열로 크기를 조정하고 값을 평균하여 윤곽이 매끄 럽도록 만든 다음 그 값에 작은 임의의 양을 추가합니다. 그런 다음 크기를 늘립니다. 원래 작은 융기가 산이되었으며 복잡한 지형으로 가득합니다.

여기에 제기 된 문제에는 두 가지 특별한 어려움이 있습니다.첫째로, 잠재적으로 거대한 것이므로이 값들을 저장하고 싶지는 않습니다. 두 번째로, 각 척도의 지형은 다른 척도의 지형과는 다른 종류입니다.

이러한 문제는 극복 할 수없는 것이 아닙니다.

기본적으로 이미지를 격자로 나눕니다. 그리고 결정적인 psedorandom 번호를 사용하여 격자의 각 사각형의 주요 기능을 설정합니다. 예를 들어, 각 사각형은 특정 밀도의 셀 유형을 가질 수 있습니다.

다음 배율에서 각 사각형을 다른 그리드로 세분하고 포함하는 사각형의 값과 그 주변 사각형을 기준으로 그리드에 걸쳐 값의 그라디언트를 적용합니다. 그런 다음 포함하는 사각형의 격자 좌표로 시드 된 의사 임의 변형을 적용합니다. 랜덤 시드의 경우 이미지가 잘리는 지에 관계없이 고려중인 하위 구분의 바로 포함 된 사각형의 좌표를 항상 사용하여 여러 번에 걸쳐 올바르게 다시 작성되도록합니다.

임의 배율 수준에서 무작위 값은 입자 유형의 밀도에서 입자 위치로 이동합니다. 그런 다음 각 입자에 대해 부분적인 기능이 있습니다. 그런 다음 해당 기능을 사용합니다.

임의의 왼쪽/오른쪽 및 위/아래 스크롤이 필요하지만 모든 필요한 기능이 포함되도록 프레임이 이동 될 때마다 현재 장면 위에있는 모든 배율 수준의 이미지를 계산해야합니다. 이렇게하면 일관성을 유지하면서 이미지를 한 셀에서 다른 셀로 스크롤 할 수 있습니다. 부분 시뮬레이션을 사용하여 셀 또는 셀 피쳐가 겹치지 않도록 할 수 있습니다. 이는 반복적이고 결정론적인 방식으로 수행 될 수 있습니다.

그리고 임의의 변형을 추가하기 전에 더 높은 레벨에서 주변 사각형의 평균을 기반으로하는 스무딩 기울기를 적용하는 것을 잊지 마십시오. 그렇지 않으면 급격한 변화로 인해 사각형이 스스로 이미지에 나타납니다!

이 답변은 다소 혼란스럽고 혼란 스럽지만 지금 당장은 설명 할 수 있습니다. 도움이되기를 바랍니다!

+0

그게 도움이되지, 그것은 내가 가능한 한 해결책으로 생각하고있는 것에 더 가까워진다. 당신은 맞습니다. 무작위 장면 생성과 결과 저장이 길 일지 궁금 해서요 ... 이것은 실행되는 시간 (저장된 데이터 세트의 크기가 커짐)에 따라 작동 할 수 있지만 더 나은 것은 psuedo-random scene generator에 사용되는 씨앗을 사용하면 입자 시뮬레이터와 같은 것을 사용하여 좀 더 '사실적인'이미지를 만들고 비행 중에 영역을 재현 할 수 있습니다. – Cyclone

+0

빠른 입자 시뮬레이션에서 입자 수의 관점에서 현재 가능한 것은 무엇입니까? 현재보고있는 이미지 유형은 광학 현미경 이미지이며, 전체 데이터 세트에는 400 만 개의 셀이있을 수 있습니다. 요즘의 빠른 4 백만 포인트의 n 바디 시뮬레이션은 (시간 단위로) 빠른 것입니까? – Cyclone

+0

@ user476615 - 4 백만 개의 입자 시뮬레이션이 빠르지 않을 것입니다. 그리고 전체 이미지의 입자 밀도가 중단되지 않으면 시스템 전체에서 다른 모든 입자의 위치를 ​​참조하지 않고 위치를 계산할 수 없습니다. 셀 위치가 미리 계산되고 저장 될 수 있습니다. 그런 다음 작은 기능 만이 즉시 계산되며, 더 작은 데이터 세트를 사용하여 수행 할 수 있습니다. –