일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- static
- Barcode
- Class
- preprocessing
- aduino
- java
- c++
- atmega328
- flutter
- parameter
- 3D
- public
- Unity
- mfc
- UNO
- wpf
- SERIAL
- Pointer
- APP
- digitalRead
- Android
- Contour
- stream
- memory
- compare
- sensor
- length
- Read
- Encapusulation
- file access
- Today
- Total
목록2025/05 (20)
폴크(FOLC)
이미지의 경계(Edge)와 고주파(High-frequency) 성분을 강조하는 대표적인 고전적 필터링 기법으로, 특히 미세한 밝기 변화나 텍스처의 국소적 차이를 잘 검출할 수 있어 결함 검사, 객체 검출, 특징 추출(SIFT 등)에서 폭넓게 사용된다. 1. 기본 개념- 두 개의 Gaussian Blur(저주파 필터링)된 이미지의 차이(Difference)를 계산하여 고주파 성분만을 추출하는 방식= 저주파 성분 제거 (배경 제거)= 고주파 성분(에지, 결함, 텍스처 불연속) 강조2. 정의- G(x,y,σ)G(x, y, \sigma)G(x,y,σ): 이미지에 대해 표준편차 σ\sigmaσ의 Gaussian 필터를 적용한 결과- I(x,y)I(x, y)I(x,y): 입력 이미지수식:DoG(x,y)=G(x..
급격한 밝기 변화(경계, 스크래치, 미세한 결함 등) 를 부각시키기 위한 핵심 기술로, 저주파(완만한 밝기 변화) 성분을 제거하고 고주파(급격한 변화) 성분을 강조하여, 결함, 텍스처 경계, 작은 선형 구조 등을 더 뚜렷하게 만든다. 1. Difference of Gaussians (DoG)개념- 두 개의 다른 표준편차(σ)의 Gaussian Blur 결과를 뺀 것- 라플라시안 오브 가우시안(LoG)의 근사치수식- DoG(x,y)=G(x,y,σ1)−G(x,y,σ2),whereσ2>σ1특징- 가장 기본적이고 빠른 고주파 강조 방법- 선명한 에지 검출, 저조도 결함 추출에 활용- 파라미터: σ₁, σ₂ 조절로 민감도 변경 가능 2. Laplacian Filter (2차 미분)개념- 영상의 두 번째 공간 미..
객체 지향 설계의 다섯 가지 핵심 원칙을 의미하며, 소프트웨어를 더욱 유연하고 유지보수하기 쉽게 만들어줍니다.SSingle Responsibility Principle (SRP)단일 책임 원칙OOpen/Closed Principle (OCP)개방-폐쇄 원칙LLiskov Substitution Principle (LSP)리스코프 치환 원칙IInterface Segregation Principle (ISP)인터페이스 분리 원칙DDependency Inversion Principle (DIP)의존 역전 원칙유지보수성 향상변경이 발생해도 영향 범위 최소화확장성 확보새로운 기능 추가가 쉬움결합도 감소의존성 주입 및 추상화로 유연한 설계 가능테스트 용이성 증가단위 테스트 작성이 쉬워짐코드 가독성 향상역할이 명확한 ..
inline 키워드는 함수를 호출하는 대신 컴파일 시점에 해당 함수의 본문을 코드에 직접 삽입하도록 컴파일러에 요청하는 것입니다.inline int add(int a, int b){ return a + b; } 목적함수 호출 오버헤드 제거 → 성능 향상헤더 파일에 함수 정의를 포함할 수 있게 함 → 링크 오류 방지특징함수 정의는 헤더 파일에 위치해야 함inline은 컴파일러에 대한 요청이지 강제는 아님여러 번 정의되어도 ODR(One Definition Rule)을 위반하지 않음 핵심inline은 성능 최적화를 위한 힌트로, 스레드 안전성과는 직접적 연관이 없습니다.멀티스레드 환경에서 inline 함수를 사용해도, 내부에 스레드 비안전한 코드(예: 전역 변수 접근)가 있다면 여전히 문제가 발생합..
AGI(Artificial General Intelligence) 는 인간과 동등하거나 그 이상의 범용적인 지능을 가진 인공지능( 특정 과업이 아니라 어떤 작업이든 사람처럼 학습하고 적응하며 수행할 수 있는 능력을 갖춘 시스템 )도메인 독립성: 언어, 수학, 논리, 감정 등 다양한 영역에서 능동적 수행학습과 추론 능력: 새로운 상황에 적응하고 일반화 가능의도·감정 이해 가능성: 고차원적 맥락 인식과 의사소통의식 수준 논의 대상: 철학적, 윤리적 의미 포함 Agentic AI는 스스로 목표를 설정하고, 계획을 세우며, 상황에 따라 행동을 조정할 수 있는 AI 시스템 (단순히 질문에 답하거나 작업을 수행하는 수준이 아니라, 목표 달성의 주체로 행동)목표 중심 실행: 하나의 명령에서 여러 단계 작업을 수행계..
새로운 제품이나 서비스를 개발할 때 사용하는 독특하고 강력한 고객 중심의 혁신 방법론으로, "고객이 제품/서비스를 경험하는 최종 시점부터 거꾸로 되짚어 나가면서 개발의 방향성을 설정하고 필요한 것을 도출하는 방식" 이다. 실제 개발을 시작하기 전에, 가상의 출시 보도자료(Press Release)와 자주 묻는 질문(FAQ) 문서를 미리 작성합니다.고객 정의 (Define the Customer)이 제품/서비스의 대상 고객은 누구인가? 이들이 어떤 특성을 가진 사람들인가?이 단계에서 막연한 '모두'가 아니라, 특정 고객층에 집중고객 문제 정의 (Define the Customer Problem)고객들이 겪고 있는 가장 큰 문제점(Pain Point)은?우리의 제품/서비스가 해결하고자 하는 핵심적인 문제?..
1. 명확한 목표와 전략 (Goal & Strategy Alignment) 업무 프로세스는 단순히 업무를 처리하는 절차가 아니라, 조직의 목표를 달성하기 위한 전략적 수단입니다. 따라서 프로세스는 다음을 명확히 반영해야 합니다: 비전 및 미션과의 정렬핵심 성과지표(KPI)와의 연계고객 가치 창출 중심의 사고 2. 표준화와 일관성 (Standardization & Consistency) 업무가 표준화되어 있지 않으면 같은 업무를 여러 방식으로 처리하게 되어 효율성과 품질이 저하됩니다. 특히 제조업, 품질 관리, 고객 대응 등 반복성이 높은 부문에서는 다음이 중요합니다: 표준 운영 절차(SOP)체크리스트 및 품질관리 기준문서화된 업무 매뉴얼 3. 정보 흐름과 커뮤니케이션 (Information Flow & ..
MFC 애플리케이션은 기존처럼 CView, CDialog 기반으로 유지하면서, 그 내부에 WPF 컨트롤을 child 형태로 삽입(hosting) 하는 방식입니다. 이를 좀 더 구조적으로 설명드리면 다음과 같습니다: 기본 구조[MFC 메인 윈도우 또는 다이얼로그] └─ [WPF 컨트롤을 호스팅하는 C++/CLI HwndHost 클래스] └─ [WPF UserControl (XAML UI)] MFC에서 HWND를 통해 자식 윈도우처럼 공간을 만들고C++/CLI의 HwndHost를 사용해 WPF 컨트롤을 MFC 영역 안에 마운트즉, WPF는 child dialog 또는 embedded panel처럼 작동합니다. 왜 이렇게 구성하는가?이유설명기존 MFC 구조 유지전체 재작성 없이도 WP..
MFC 프로젝트에 WPF UI(UserControl)를 삽입하고 이벤트를 처리하는 전체 예제를 아래와 같이 구성해드릴게요. 이 프로젝트는 다음과 같은 3개의 서브 프로젝트로 나뉩니다: 프로젝트 구성WpfControlLibrary→ WPF UserControl을 정의 (예: 버튼 클릭 이벤트 포함)WpfHostBridge (C++/CLI Class Library)→ WPF를 호스트하고 MFC에서 사용할 수 있도록 핸들 노출MfcHostApp (MFC Application)→ 실제 실행 앱. C++/CLI DLL을 통해 WPF UI 삽입 및 이벤트 처리 [WPF UserControl 프로젝트 - WpfControlLibrary]1-1. UserControl 생성: MyWpfControl.xamlxml 파일 ..
MFC 프로젝트에 WPF UI 화면을 삽입하고 이벤트를 처리하는 방법은 Interop 기술을 활용하는 방식으로 이루어집니다. Visual Studio 2022에서도 지원되며, 다음과 같은 구성요소와 절차가 필요합니다. 개요: MFC에 WPF 삽입 원리MFC 프로젝트는 기본적으로 Win32 기반 C++ 환경이므로, WPF(.NET 기반)의 UI 요소를 삽입하기 위해 중간 호스트 컨트롤을 사용해야 합니다.대표적인 방식:HwndSource: WPF → Win32 로 호스팅HwndHost: Win32 (MFC) → WPF를 포함할 때 사용ElementHost: Windows Forms에서 사용하지만, MFC에서는 C++/CLI를 통해 유사한 방식 사용 절차 요약WPF UserControl 생성 (.NET 프로젝..
1. MFC와 WPF의 기술적 차이플랫폼C++ 기반 Win32 API 래퍼.NET Framework/.NET Core 기반렌더링 기술GDI 기반, 저수준DirectX 기반, 고급 그래픽UI 정의코드 기반 (절차적)XAML 기반 (선언적)데이터 바인딩거의 수동 처리강력한 데이터 바인딩 시스템아키텍처 패턴주로 MVC 또는 비구조적MVVM 권장스타일/테마매우 제한적완전한 스킨/스타일 시스템 지원해상도 대응수동 처리자동 DPI Scaling 지원 결론: MFC는 레거시이지만 시스템 수준 제어에 유리하고, WPF는 현대적인 UI/UX 및 유지보수성이 강점입니다. 2. 대체 시나리오시나리오 A. 전체 WPF로 리빌드기존 MFC 코드 중 비즈니스 로직은 C++/CLI 또는 C# 클래스로 이식하고UI는 XAML + M..
Visual Studio 2022에서 기존 MFC 프로젝트를 Qt로 대체할 수 있는지에 대해 실무적인 관점에서가능하지만 “단순한 교체”는 어렵고, 재설계에 가까운 마이그레이션이 필요하다. 1. Visual Studio 2022에서 Qt 개발은 완전히 가능Qt는 Visual Studio와 통합되어 있어 VS2022에서도 아래 방식으로 완벽하게 개발 가능Qt Visual Studio Tools (공식 확장 도구) 설치→ Qt 버전 등록, Qt 프로젝트 생성, 빌드, UI 디자이너 연동 등 가능CMake 프로젝트 지원 강화 (Qt 6부터 CMake 공식 지원)MFC와 Qt를 같은 VS 환경에서 병렬 사용도 가능하므로 점진적 마이그레이션에도 적합 2. 기존 MFC UI 코드의 Qt 전환윈도우 생성CWnd, C..
원주율 π (pi ≈ 3.141592...)를 수학적인 수식으로 근사할 수 있는 여러 가지 방법이 있습니다. 대표적으로는 다음과 같은 수식들이 있습니다: #include #include // 아크탄젠트의 테일러 급수 확장으로 arctan(x) 계산 double arctan(double x, int terms){ double result = 0.0; double numerator = x; double denominator = 1.0; bool sign = true; for (int i = 0; i { if (sign) result += numerator / denominator; else ..
LockFileEx는 Windows API에서 파일의 일부 또는 전체에 대해 동기적 또는 비동기적 잠금 (lock) 을 설정하기 위해 사용되는 함수입니다. 이는 여러 프로세스 또는 스레드가 동일한 파일을 동시에 열 때 데이터 손상이나 동기화 문제를 방지하는 데 필수적입니다.함수 시그니처BOOL LockFileEx( HANDLE hFile, DWORD dwFlags, DWORD dwReserved, DWORD nNumberOfBytesToLockLow, DWORD nNumberOfBytesToLockHigh, LPOVERLAPPED lpOverlapped ); 매개변수 설명파라미터설명hFile잠금을 설정할 파일 핸들. CreateFile로 얻은 유효한 핸들이어야 하며 FILE_SHARE_* 플래그 설정에 ..
Named Pipe 방식 (CreateNamedPipe)1. 개요Windows에서 제공하는 고속 메모리 기반 IPC (Inter-Process Communication) 방식프로세스 간 실시간으로 스트림 혹은 메시지를 전송할 수 있음파일처럼 보이지만 진짜 파일은 아님구성 요소서버 프로세스:CreateNamedPipe 로 파이프 생성ConnectNamedPipe 로 클라이언트 연결 수신클라이언트 프로세스:CreateFile 로 파이프에 연결WriteFile, ReadFile 로 데이터 송수신동작 흐름서버가 \\.\pipe\MyPipe 라는 파이프를 생성클라이언트가 해당 파이프에 연결 시도연결 후 실시간 데이터 전송 가능 (버퍼 기반)장점실시간성 우수 (메모리 기반 통신)디스크 접근이 없어 빠름읽기/쓰기 작..
공유 파일 방식 (Shared File Method)1. 개요파일을 공유 폴더(네트워크를 통해 접근 가능한 폴더)에 저장하고, 다른 PC가 이를 읽거나 수정하는 방식Windows의 SMB (Server Message Block) 프로토콜을 이용해 구현됨구성 요소공유 폴더 설정: 특정 경로를 공유하도록 설정 (\\192.168.0.101\SharedData)파일 입출력 API: C++에서는 CFile, CStdioFile, 또는 fopen, ifstream 등을 사용동작 흐름PC A가 공유 폴더를 설정하고 data.txt를 만듦PC B는 해당 경로를 통해 파일에 접근 (\\PC-A\SharedData\data.txt)두 PC가 파일에 순차적으로 접근하여 데이터 읽기/쓰기장점구현이 간단하고 직관적파일 내용이..
두 대의 PC가 네트워크 드라이브를 통해 공유된 폴더에서 파일을 생성하고, 메시지를 주고받을때 아래과 같이 예외(Exception)가 발생할 수 있다.원인파일이 아직 완전히 생성되지 않았을 때 접근파일 작성이 끝나기 전에 다른 PC에서 접근하면 IOException이나 FileNotFoundException이 발생할 수 있습니다.버퍼링 및 파일 캐싱 문제파일 시스템에서 파일 생성 직후에 바로 디스크에 반영되지 않아 접근 시 에러가 발생할 수 있습니다.파일 잠금 (File Locking)한쪽 PC에서 파일을 아직 닫지 않은 상태일 경우, 다른 PC가 파일을 읽으려 할 때 "사용 중" 예외가 날 수 있습니다. 방안 텍스트 파일 생성 → 완료 메시지 전송 → 수신 측에서 파일 안정성 체크 후 → 파일 읽기원본..
1.Customer Obsession2.Ownership3.Invent and Simplify4.Leaders are right a lot5.Learn and Be Curious6.Hire and Develop the Best7.Insist on the Highest Standards8.Think Big9.Bias for Action10.Frugality11.Earn Trust12.Dive Deep13.Disagree and Commit14.Deliver Results15.Strive to be Earth’s Best Employer16.Success and Scale Bring Broad Responsibility

서브픽셀 엣지 검출(Subpixel Edge Detection) 알고리즘은 머신 비전 분야에서 매우 정교하게 설계된 고정밀 위치 추정 기법입니다. 이 방식은 일반적인 픽셀 해상도를 넘어 0.1 픽셀 이하의 위치 정밀도를 달성할 수 있습니다.엣지 검출의 기본 흐름 다음과 같은 순서로 작동합니다: ROI(Region of Interest) 설정 -> 측정 위치에 ROI 위치시키기 픽셀 프로파일 생성 (Intensity Profile) -> I(x)=grayscale intensity Gradient 계산 (1차 미분 또는 필터 기반) -> G(x)=I(x+1)−I(x)또는 Gaussian Derivative 필터도 사용 가능:-> G(x) = I(x) ∗ d / dx * Gaussian(x) Peak 위치 ..

소프트웨어 개발 및 프로젝트 관리 방식 중 하나로, 빠른 피드백과 유연한 대응을 중시하며, 고객 중심의 반복적·점진적 개발을 통해 가치를 극대화하는 것을 목표로 합니다. 🔹 핵심 개념 반복적(Iterative)이고 점진적(Incremental) 프로젝트를 여러 개의 짧은 개발 주기(스프린트, iteration)로 나눠서 작업합니다. 각 주기에서 동작 가능한 제품(working software)을 제공합니다. 고객 중심(Customer-Centric) 고객의 피드백을 적극 반영하여 요구사항을 유연하게 변경합니다. 변화는 피할 것이 아니라, 경쟁력의 원천으로 간주됩니다. 협업 중심(Collaborative) 개발자, 기획자, 고객 간의 긴밀한 커뮤니케이션이 핵심입니다. 팀 간 협업과 자율성이 강조됩니다. ..