Wolfram 언어

이미지 처리 및 신호 처리

인터랙티브 이미지 측정

DynamicImage는 사용자 인터페이스의 구축을 용이하게 하여 이미지의 오브젝트의 인터랙티브한 측정을 가능하게 합니다.

셀 반경 r의 측정을 고려합니다.

In[1]:=
Click for copyable input

Alt+click을 사용하여 노란 측정 원형의 중심을 배치합니다. 슬라이더를 움직여 원형의 반경 r을 변경합니다.

전체 Wolfram 언어 입력 표시하기
In[2]:=
Click for copyable input
measurementCircle[Dynamic[center_], Dynamic[r_]] := {Yellow, Thick, Dynamic@Circle[center, r], Dynamic@Text[ Style[StringJoin[ToString@Round@r, "px"], FontSize -> 18], Scaled@{0.1, 0.9}, Background -> RGBColor[0, 0, 0, 0.5]]}; DynamicModule[ {center = ImageDimensions[img1]/2, r}, Manipulate[ EventHandler[ DynamicImage[ img1, Epilog -> measurementCircle[Dynamic[center], Dynamic[r]] ], {"MouseDown" :> If[CurrentValue["OptionKey"], center = MousePosition["Graphics"]]}, PassEventsDown -> Dynamic[Not[CurrentValue["OptionKey"]]] ], {{r, 32}, 8, 800}, FrameMargins -> 0 ] ]
동영상 작동
동영상 정지

DNA의 나선 구조를 수동으로 추적하여 그 길이를 측정합니다.

In[3]:=
Click for copyable input

Alt+click을 사용하여 선의 정점을 위치시킵니다. Alt+Shift+click을 사용하여 마지막 정점을 삭제합니다.

전체 Wolfram 언어 입력 표시하기
In[4]:=
Click for copyable input
measurementLine[Dynamic[pts_], Dynamic[length_]] := {Yellow, Thick, Dynamic@Line[pts], Dynamic@Text[ Style[StringJoin[ToString@Round@length, "px"], FontSize -> 18], Scaled@{0.1, 0.9}, Background -> RGBColor[0, 0, 0, 0.5]]} DynamicModule[ {pts = {}, length = 0}, Panel@EventHandler[ DynamicImage[ img2, Epilog -> measurementLine[Dynamic[pts], Dynamic[length]] ], {"MouseDown" :> If[CurrentValue["OptionKey"], If[CurrentValue["ShiftKey"], pts = Most[pts], AppendTo[pts, MousePosition["Graphics"]]]; length = Total@Apply[EuclideanDistance, Partition[pts, 2, 1], {1}]]}, PassEventsDown -> Dynamic[Not[CurrentValue["OptionKey"]]] ] ]
동영상 작동
동영상 정지

관련 예제

de en es fr ja pt-br ru zh