분류 전체보기
-
[C#] RANSAC 알고리즘 구현C#/C# 실습 2024. 12. 29. 22:44
RANSAC 정의RANSAC은 실제 데이터를 토대로 모델을 추정하는데 사용되는 가장 기초적인 방법중 하나다. RANSAC은 Random Sample Consensus의 약자이며, 말 그대로 데이터중 모델에 필요한 일부 데이터로 모델을 만들어, 비교한다는 뜻을 포함하고 있다. RANSAC은 컴퓨터 비전, 로보틱스, 빅데이터 등의 분야에서 활용되고 있다. RANSAC 과정알고리즘 단계는 다음과 같다.1. 무작위 샘플링: 데이터에서 모델을 생성할 수 있는 최소한의 샘플을 무작위로 선택한다.2. 모델 추정: 샘플을 기반으로 모델 계수를 계산한다.3. Inlier 검증: 전체 데이터에 대해 해당 모델과의 오차를 계산한다. 그리고 특정 임계값 (Threshold) 보다 낮은 오차를 갖는 데이터 수를 측정한다.4. ..
-
[C++] STL 컨테이너 멤버 타입 특징C++/C++ STL 2024. 11. 16. 22:11
STL Container 정의STL (Standard Template Library) 컨테이너는 C++ 표준 템플릿 라이브러리에서 제공하는 자료 구조이며, 템플릿 클래스다. 데이터 구조를 효율적으로 사용하고 코드를 단순화하는데 필수적이다. 이를 이해한다면, 더 빠르고 안정적인 프로그램을 개발할 수 있다. STL 컨테이너는 데이터 저장방식과 성능 요구사항에 따라 다음과 같이 분류할 수 있다.- 빠른 임의 접근: std::vector, std::deque- 삽입/삭제가 빈번: std::list, std::forward_list- 정렬된 데이터: std::set, std::map- 빠른 검색:std::unordered_set, std::unordered_map- 특정 구조: std::stack, std::qu..
-
[포토샵] 이모티콘 만들기포토샵/포토샵 실습 2024. 11. 16. 19:18
인생을 살다보면, 머리속에 떠오르는 이미지들을 어떻게 처리해야할지 난감할 때가 있다. 그럴 때마다 우리들은 낙서를 하곤 한다. 이 낙서를 이용하여 이모티콘을 만들 수 있지 않을까 고민해봤다. 가장 먼저 필요한 것은 공책과 필기구가 필요하다. 위 그림은 예시 그림이다. 그리고 포토샵에서 자신이 직접 그린 그림을 불러온다. 이미지 탭에 들어가서 조정 -> 한계값 버튼을 눌러준다. 여기서 한계값은 이미지를 바이너리 이미지로 변환해주는 기능을 제공한다. 기준값을 잘 설정할 경우, 위 그림에서 윤곽선과 배경을 명확하게 구분할 수 있다. 한계값 버튼을 누를 경우, 이미지에 대한 히스토그램이 생성된다. 그 중 해당 이미지에 적합한 기준값을 설정해야한다. 위 예시는 기준값을 너무 높게 잡아 일부 배경도 윤..
-
[C++] ADL (Argument Dependent Lookup) 이해하기C++/C++ 실습 2024. 11. 10. 08:55
ADL (Argument Dependent Lookup) 정의ADJ는 C++ 98부터 도입된 개념이며 함수 인자가 소속된 네임스페이스를 기준으로 함수를 자동으로 찾아 호출하게 해주는 기능이다. 자동으로 인자의 네임스페이스에서 탐색하여 함수를 찾게 해준다. 예제 코드:#include namespace MyNamespace { struct MyType {}; void myFunction(MyType) { std::cout 위 코드에서 MyNamespace 내 구조체인 MyType 형태로 obj를 정의했다. 그리고 MyNamespace 안의 함수인 myFunction에 함수 인자 obj를 넣을 경우, myFunction 함수에 추가적으로 네임스페이스를 명시하지 않더라도 자동으로 obj..
-
[Python] p-value 의미와 사용 방법Python/Python 실습 2024. 10. 9. 14:58
귀무가설 정의통계학에서 가설 검정 (가설 합당성 검증) 할 때 사용한다. 관찰된 데이터가 귀무 가설 (Null hypothesis) 하에서 나타날 확률을 의미한다. 여기서 귀무가설이란, 영가설이라고도 하며, 처음부터 버릴 것을 예상하는 가설이다. 대립가설이란, 귀무가설에 대립되는 가설이다. - 예제: 30대 남자의 평균 몸무게는 20대 남자의 평균 몸무게보다 높을 것이다.- 귀무가설: 30대 남자의 평균 몸무게는 20대 남자의 평균 몸무게보다 같거나 낮다.- 대립가설: 30대 남자의 평균 몸무게는 20대 남자의 평균 몸무게보다 높다. p-value 정의p-value는 "유의 확률"이며, 쉽게 말해서 의미가 있을 확률이다. 그리고 귀무 가설의 기각 (= 버림)를 판단할 때, 활용된다. 만약 p-value가..
-
[C++] Concepts 의미와 사용 방법C++/C++ STL 2024. 9. 22. 10:03
Concepts 개요Concepts는 C++20 표준에 처음 등장하였다. 템플릿 프로그래밍에서 제약 조건을 정의하는 기능을 한다. 이를 통해 특정 요구사항을 충족하는지, 컴파일 도중에 확인할 수 있다. 이를 통해, 템플릿을 더 명확하고 안전하게 작성할 수 있도록 도와준다. Concepts 정의Concepts는 Concept 키워드를 사용하여 정의된다. 특정 타입이 특정 요구 사항을 충족하는지 확인하기 위한 boolean 함수와 비슷한 역할을 한다. // Concepts 정의 예제templateconcept EqualityComparable = requires(T a, T b){ {a == b} -> std::convertible_to;}; 위 예시에서 EqualityComparable이라는 Concept..
-
[포토샵] 이미지 배경 제거 후 합성하기포토샵/포토샵 실습 2023. 12. 25. 17:24
발표자료 혹은 디자인 관련 업무를 할 때, 자연스럽게 까진 아니더라도, 이미지를 합성해야되는 순간들이 온다. 포토샵을 활용하여 다음과 같이 이용할 수 있다. 다음과 같이 파일 - 새로만들기를 통해 레이어를 만든다. 포토샵 파일은 여러 레이어로 구성되어 있으며, 각각의 레이어들은 이미지를 구분하는 역할을 한다. 수정시, 목적에 따라 필요한 레이어만 수정하면 되므로 쉽게 편집이 가능하다. 그냥 확인을 눌러도 되며, 가로 세로 픽셀을 선택해도 된다. 처음 이미지를 가져오면, 다음과 같이 크기를 조절할 수 있도록 X 모양으로 나타난다. 이미지 변형이 원하는대로 이루어졌으면, 마우스 오른쪽 버튼을 누른후 가져오기를 누른다. 그럼 이 이미지는 레이어에 귀속된다. 이후에 배경으로 쓸 이미지도 다시 불러와..
-
[c++] vector, map 라이브러리 사용법C++/C++ 알고리즘 2023. 12. 9. 13:25
vector와 map은 모두 정렬을 쉽고 유용하게 해주는 라이브러리이다. 특히 map은 기존의 배열변수에서 인풋값이 정수였던 한계를 넘어, 문자를 인풋값으로 활용할수도 있다. #include "pch.h"#include #include #include using namespace std;int main(){ vector products = { "alpa", "beta", "ceta", "delta" }; vector changes = { "beta", "ceta" }; vector answer; map m; //map 데이터 할당 for (int j = 0; j map 데이터 변경, Products 데이터 변경 for (int i = 0; i 결과: Products는 제품이름의 나열이며, ..