분류 전체보기
-
Pseudo Coloring 예제컴공지식/컴퓨터비전 2024. 9. 20. 00:59
Pseudo Coloring은 회색조 이미지에 인위적으로 색을 입히는 기법이다.인간의 눈은 회색조로 표현된 이미지에서 작은 차이를 보기 어렵지만, 색을 입히면 그 차이를 더 쉽게 구별할 수 있다.아래 코드는 그런 작업을 어떻게 하는지 보여주고 있다. int main() { Mat gray = imread("xray.jpg", 0); // "xray.jpg"라는 이미지를 흑백(회색조)으로 불러옴 Mat color; // 의사 색상 처리가 된 이미지를 저장할 Mat 변수 // 흑백 이미지에 컬러 맵을 적용 (COLORMAP_JET을 사용) applyColorMap(gray, color, COLORMAP_JET); // 흑백 이미지와 의사 색상 처리된 이미지 출력 ..
-
HSI 예제컴공지식/컴퓨터비전 2024. 9. 20. 00:55
다음 코드로 HSI 색상 공간을 활용하는 방법을 알아보자코드가 좀 복잡하긴 한데 별거 아니다int main() { Mat image = imread("colorful.jpg"); // 이미지 파일 "colorful.jpg"를 불러옴 Mat HSV, intensity_change, mask_out, change_color; // 다양한 처리 결과를 저장할 Mat 변수들 vector ic(3); // intensity_change에 대한 채널 벡터 vector mo(3); // mask_out에 대한 채널 벡터 vector cc(3); // change_color에 대한 채널 벡터 int rows = image.rows; // 이미지의 행 수 in..
-
Split/Merge컴공지식/컴퓨터비전 2024. 9. 20. 00:49
Split/Merge는 이미지의 여러 채널을 다루는 기술이다.이미지는 여러 색상 채널(RGB, BGR, YUV 등)로 이루어져 있다.Split은 이미지를 각 채널별로 나누는 것이고, Merge는 나눠진 채널들을 다시 합치는 과정이다. Split (채널 분리) void split(Mat src, Mat* mv) 이 함수는 여러 채널로 이루어진 이미지를 각각의 단일 채널 이미지들로 분리한다.mv는 포인터인 것을 보면 눈치를 챘겠지만 배열인데, 출력 배열이다. 각각의 채널이 저장된다.예를 들어, BGR 이미지라면 mv[0]은 B 채널, mv[1]은 G 채널, mv[2]는 R 채널이 되는 거다.src.channels() 함수를 이용하여 이미지의 채널 수를 반환받아 이 수만큼 배열을 이용하면 된다. Merg..
-
Color Conversion컴공지식/컴퓨터비전 2024. 9. 20. 00:38
이미지를 처리할 때, 다른 색상 공간으로 바꿔서 작업하는 게 종종 필요하다.RGB에서 그레이스케일로 변환하거나, HSV 같은 다른 색상 공간으로 바꾸는 것처럼 말이다.다음 함수를 이용하여 바꿀 수 있다. void cvtColor(Mat src, Mat dst, int code, int dstCn = 0) OpenCV에서 제공하는 색상 공간 변환 함수다.파라미터에 대해 설명하자면code는 변환하려는 색상 공간을 지정하는 코드다. 그레이스케일인지.. RGB인지..dstCn은 목적지 색상 공간에서 사용될 채널 수다. 0으로 설정하면, 원본 이미지와 변환할 목적지 색상 공간에 맞게 자동으로 결정된다.예를 들어, BGR을 그레이로 변환할 때는 1 채널이 필요하고, BGR을 HSV로 변환할 때는 3 채널이 필요하니..
-
Color Processing컴공지식/컴퓨터비전 2024. 9. 20. 00:11
색상 이미지를 처리하는 다양한 방법에 대해 소개하겠다. Intensity transformation, Histogram equalization, Spatial filtering 이 세 가지 기법은 색상 이미지를 처리할 때 사용된다.근데 RGB 컬러 공간에서 각 채널에 이런 기술들을 적용하는 건 일반적이지 않다.대신에 intensity channel만 따로 떼어내서 여기에만 적용한다.그래서 컬러 공간을 HSI나 YUV(YCbCr)로 변환한 후에 작업을 진행하는 방식이다.왜냐면 RGB 채널에 각각 적용하면 이상하게 나올 수 있다. HSI 컬러 공간을 사용하는 이유는HSI는 색상을 Hue, Saturation, Intensity로 나누니까 이미지의 강도만 따로 제어하는 게 가능하다.그리고 특정한 색상 범위의..
-
Color Models컴공지식/컴퓨터비전 2024. 9. 19. 23:45
색 모델들에 대해 알아보자 HSI HSI는 색을 나타내는 세 가지 요소로 이루어져 있다.Hue(색상): 빛의 파장 중 지배적인 색깔Saturation(채도): 색의 순도나, 얼마나 깨끗한 색인지Intensity(명도): 밝기, 즉 색이 얼마나 밝은지 HSI는 HSV랑 비슷하고, 구별할 필요 없다.채도(S)가 높으면 색이 더 선명하고, 명도(I)가 높으면 더 밝은 색이 된다. YCbCr (YUV) Y: 밝기를 나타낸다.Cb: 파란색과 밝기 간의 차이. B - Y로 계산된다.Cr: 빨간색과 밝기 간의 차이, R - Y 그레이스케일 이미지 색상(Hue)과 채도(Saturation)가 모두 0이다. 밝기(Lightness)만 변할 수 있다. 즉, 그 이미지에서 유일하게 조절되는 게 밝기다.
-
상관관계(Correlation)와 인과관계(Causation)의 차이경제 2024. 9. 14. 21:13
상관관계는 두 변수 사이에 관계가 있다는 걸 보여주는 거다.하지만, 하나가 다른 하나의 원인이 된다는 걸 의미하지는 않는다.쉽게 말해서, 두 변수가 같이 변한다고 해서 한 변수가 다른 변수를 변화시켰다는 건 아니다. 예를 들어, 자동차의 주행 거리(Mileage)와 연료 소비량(Fuel consumption)은 상관관계가 있다. 주행 거리가 길어지면 연료 소비도 늘어나니까.여기서 인과관계도 존재한다. 왜냐하면 주행 거리가 길어질수록 자연스럽게 연료 소비도 많아지기 때문이다. 그래서 이 경우엔 상관관계와 인과관계가 모두 존재한다. 인과관계는 한 변수가 다른 변수의 원인이 되는 관계를 뜻한다. 상관관계는 예측에 사용할 수 있지만, 인과관계는 예측과 정책 결정에 모두 사용할 수 있다. 상관관계는 있지만 인과관..