분류 전체보기

Developments/VTK

[VTK] vtkDataSet 분석하기 (feat. vtkLookupTable)

1. 개요 VTK를 이용한 데이터 처리를 할 때 가장 많이 사용하는 vtkImageData와 vtkPolyData의 구조를 분석하고, 특히 Scalar 값의 의미와 이를 활용하여 수행할 수 있는 vtkLookupTable을 활용한 색상 표시등의 활용도를 정리한다. 2. vtkDataSet 관계도 vtkDataSet은 추상화 클래스이며 이를 파생한 클래스 중에 vtkImageData와 vtkPolyData가 존재한다. vtkDataSet에서 중요한 데이터는 Cell, CellData, Point, PointData이다. Point : DataSet에서 기본이 되는 데이터이다. Point는 0-Dimension을 갖는 기본 구성 데이터이다. 하지만 VTK 에서는 3차원 데이터를 기본으로 하고 있어서 doub..

Developments/VTK

[VTK] Pipeline Update, Modified

1. 개요 이전글에서 VTK Pipeline의 동작에 대해서 알아봤었다. VTK Pipeline 동작방식을 간단히 정리해보면 Chain 방식과 Demand-driven 방식이다. 각 Filter 들은 SetInpuConnection 을 통해서 서로 연결을 하며, Update 요청에 따라 Upstream request 가 발생하여 각 filter마다 변경사항이 있는지를 확인하고 변경사항이 있을 경우에만 Updated 된 데이터를 반영하여 결과 값을 다음 filter에게 전달하도록 한다. 하지만, 우리는 VTK에는 Pipeline 방식 뿐만 아니라 Data 입력방식 또한 알아야 한다. 간단히 말해서 Chain 으로 연결되지 않고 일회성으로 데이터가 연결되어 Upstream request 가 전달되지 않는 상..

Programming/Python

[ImageProcessing] Opencv, PILImage, Tensor 채널 비교

영상처리를 하면서 많이 사용되는 패키지들의 차이를 알아보고 각각의 데이터 구조를 살펴보고 서로간의 데이터 전환을 하는 방법을 정리한다. OpenCV 그동안 제일 익숙한 패키지이다. OpenCV는 기본 적으로 BGR 채널을 사용한다. 내부적으로 Numpy 를 기반으로 데이터 접근이 가능하다. import cv2 from PIL import Image # Load an image with OpenCV image_cv = cv2.imread('path_to_your_image.jpg') # replace with your image path # Convert from BGR to RGB image_cv = cv2.cvtColor(image_cv, cv2.COLOR_BGR2RGB) # Convert to a P..

Developments/VTK

[VTK] Picker Interaction 2

1. 개요 이전 글에서 Picker의 종류들과 각각의 사용방법에 대해 알아봤었다. 이번에는 vtkPicker 를 사용하는데 알아두면 좋을 vtkPickingManager와 PickList를 알아보려고 한다. 2. vtkPickingManager Picking 은 Renderer 의 Scene 에서 기하학적 계산을 많이 하므로 매우 computation 소모가 큰 작업이다. 그렇기에 VTK 에서는 vtkRenderWindowInteractor 에서 관리하는 vtkPickingManager를 객체를 만들었고, 이를 통해서 중복적으로 picker 객체를 사용하는 것을 방지하기 위한 관리용 객체를 정의하고 있다. PickingManager는 하나의 interactor 에서 여러개의 picker가 중복적으로 사용..

Developments/VTK

vtkTransform Multiply 비교

1. 개요 vtkTransform 의 PreMultiply와 PostMultiply 방식을 비교한다. 2. PreMultiply Matrix 곱을 수행할 때 기존의 matrix를 pre 즉 앞단에 놓고 계산을 한다. 함수의 명칭때문에 헷갈리지만 명칭의 기준이 기존 matrix 값을 의미한다. Matrix = PrevMatrix * NewMatrix 로 표현할 수 있다. 이럴 경우 matrix의 좌표계는 상대 좌표계로 계산된다. 3. PostMultiply PreMultipy 와 반대로 기존 matrix 값을 post 뒷단에 놓고 계산 한다. Matrix = NewMatrix * PrevMatrix 로 표현할 수 있다. 이럴 경우 matrix의 좌표계는 월드 좌표계로 계산된다. 3. 구현 vtkAnnota..

Developments/AWS

AWS Cognito with OAuth2

Cognito 서비스에서 User Pool과 Identity Pool 에서 개별적으로 OIDC(Open Identity Connect) 기능과 OAuth2 를 제공하고 있다. 하지만 각자 사용하는 용도와 목적의 차이가 있기에 이를 정리한다. 1. Conito User Pool with OAuth2.0 OAuth2 는 인가를 위한 프레임워크로 사용자의 자격인증을 공유하지 않으면서 권한을 부여할 수 있는 방식이다. 이를 인증하는 방법은 여러가지가 있으나 기본적으로 Code 를 기반으로 인증을 수행하는 방법이 범용적으로 많이 사용된다. 여러 인증 방식은 아래의 링크를 확인하자 Understanding Amazon Cognito user pool OAuth 2.0 grants | Front-End Web & M..

Developments/AWS

AWS Service 요약

Compute Services: Amazon Elastic Compute Cloud (EC2): EC2 provides resizable compute capacity in the cloud. It allows businesses to launch virtual machines (instances) and run various applications, including web and mobile apps, databases, and enterprise applications. AWS Lambda: Lambda is a serverless compute service that runs code in response to events and automatically manages compute resourc..

Programming/C#

WPF 아키텍쳐

WPF 는 아래의 구성에서 빨간색 표시된 다이어그램이다. milcore 는 DirectX를 위한 코드이어서 native이고 나머지는 managed 코드이다. System.Threading.DispatcherObject DispatcherObject는 WPF의 대부분의 클래스의 부모클래스로 정의된다. 이는 여러개의 쓰레드간의 데이터를 주고받을 수 있도록 CLR 객체를 생성하여 STA 동작이 되도록 한다. Dispatcher를 통해서 메시지를 큐에 쌓아서 순차적으로 동작을 하면서 단일 쓰레드에서 UI를 제어 할 수 있도록 한다. 관련된 것이 cross thread exception, deadlock, race condition과 같은 문제를 방지하기 위한 것이다. System.Windows.Dependenc..

Programming/C#

WPF Style multiple controltemplate

WPF Style을 이용하여 여러개의 TargetType 에 대해서 각각의 ControlTemplate를 지정하는 방법이다. Style을 Control 에 지정하였을 때, Resource는 Target이 되는 Type별로 ControlTemplate을 정의한다. Style의 Template property 에는 style이 적용되는 control 의 TargetType 속성을 얻어와 Style.Resource 에서 매치되는 TargetType의 ControlTemplate를 적용할 수 있도록 한다. 이를 위해서 RelativeSource 의 Self 객체의 Path=TargetType 으로 값을 얻어와서 ControlTemplate의 TargetType에 binding 한다. 아래는 Button 에 St..

Programming/C#

Wpf toast message

Wpf toast message 활용하기 using Windows.Data.Xml.Dom; using Windows.UI.Notifications; public void ShowCustomizedToastNotification(string title, string message, string imageFilePath, string audioFilePath, int durationInSeconds) { // Set up the XML content for the toast notification var xml = $@" {title} {message} This is a long message that should wrap to multiple lines in the notification. param1=v..

RichardBang
'분류 전체보기' 카테고리의 글 목록 (3 Page)