영상 처리와 히스토그램 기법
Shared on April 19, 2026
그래서 4 곱하기 이후 이렇게 해서 블루그린 레드를 이제 오신 것을 위해서 정답을 했습니다. 그 다음에 영상들이 있다고 했는데 여기 값들은 어떤 RGB나 그린 값이 아니고 팔레트의 인덱스 번호라고 읽을 했죠. 여기 만약에 1라는 값이 있으면 팔레트 0번 1번째 계열에 있는 RGB 값으로 푸려라 이런 내용을 했습니다. 그 다음에 이제 이 팔레트의 블루그린 레드에 다 동일한 값이 있으면 그리오고 하나라도 다른 값이 있으면 칼라다.
이런 얘기 했었죠. 각각 0에서 2호까지 표시되는. 그래서 이 점이 있는 원점에서 여기 이 점. 2호, 2호, 2호까지 연결하는 이 선 위에 있는 점들은 이제 알기비가 다 동일한 값들이죠. 여기에 있는 값들만 그레이가 되고 그 외에 나머지 점들은 다 이제 알기비 중에 하나라도 틀리니까 칼라그룹이다. 뭐 이런 얘기 했었습니다. 그죠? 그래서 이번에는 우리가 2/8성, 8bit, 블링 8bit, 블루 8bit에서
총 나올 수 있는 경우의 수가 2/8성 곱하기 8성 곱하기 8성이니까 총 2/24성 그래서 총 2/24성 개만큼의 칼라값이 가능하죠. 14개의 칼라값이 가능하죠. 파일 사이즈 계산하는 법 14,47원 이상 돈이라 라고 했어요. 14,47원 계산은 307,700원. 그 다음에 아까 팔레티에서 마지막 한 번에
위저분은 알파 채널 픽셀의 투명도로 나타낸다고 하겠습니다. 그 다음에 24m 풀칼라 비트맵 그래서 여기 똑같이 파일에서 인포에서 14, 40 파이트는 들어와 있고 앞에서 설명한 256 그레인은 인덱스 드라운 차이점이 팔레트가 없다. 14, 40 파이트는 있고 팔레트 없이 여기는 블루그린 외드손으로 그럼 이제 26x26에 24x3 컬러는 이렇게 되죠.
14x40 이것은 동일하게 들어가 있고 팔레트 없이 26x26인데 여기 각 픽셀이 블루그린 3백씩 들어왔으니까 4x4 해서 계산하면 약 196,662백이 내가 아까 26x26보다 3배 정도 크죠. 그 다음에 여기서 이제 영상 데이터가 위 알림에 거꾸로 들어가 있다고 얘기를 했어요 그죠? 잘 켜고 가세요 지난 시간에 했던 거는 쭉 다시 한번 드리비 한 겁니다
그 다음 여기서 여기 실제로 파일에서 이런 구조체로 가지고 14바이트 정보를 담고 인포헤더에서 40바이트 구조를 담는다 이렇게 했었고요 문이 닫고 그 다음에 이제 첫번째 우리가 영상처리 방법 중에 처음 나오는게 영상 포인트, 픽셀처리. 그래서 우리가 산술연산인데 어떤 입력 영상값에다 1.1 어떤 값을 더하거나 빼거나 곱하거나 나눠가지고 추력을 뽑는 이런것들 우리가 영상의 포인트처리라고 얘기를 해요.
여기서 얘기할 때 우리가 입력 영상 출력 영상을 담을 수 있는 공간을 우리가 보통 C 프로그램에서 찾는데 데이터 타입은 unsigned 캐릭터로 한다고 했죠. 왜냐하면 각 픽셀 값이 가질 수 있는게 0에서 2에 8승 -3 부호 없이 0에서 255까지 존재하니까 그걸 나타내는 데이터 타입이 unsigned 캐릭터로 되었죠. unsigned 캐릭터의 인 이미지 이렇게 해서 640, 480 크기의 이미지 3을 나오면 우리가 어레이를 480, 64 이렇게 지정해서 놓고 있습니다.
그죠? 이렇게 잘 기억하길 바랍니다. 자 그래서 이제 요구를 하면서 잠깐 요구이'대자' 타입 얘기했죠? 그래서 연사 있는 캐릭터가 3바이트 3바이트에서 얘가 0에서 2,80, -1이죠? 그 다음'sort'는 2바이트 'long'는 4바이트,'float'는 4바이트,'nouble'는 8바이트 근데 이제'integio'는 OS 버전과는 틀리다고 했죠? 그죠? 그래서 2바이트 OS에서는 2바이트로 지금 인식을 하고
4바이트 OS에서는 4바이트로 인식을 하고 그래서 여기 이 내용을 잘 기억하도록 하겠습니다. 지난 시간에 했던거죠? 그래서 이 집인데, 여기 이제 우리가 그.. 내가 어떤 프로그램에서 영상 기사를 담으려고 어떤 640, 480 크기의 영상 데이터를 담기 위해서 이걸 이제 정리하고 그 다음에 처리된 결과를 여기 아웃 이미지에다가 담기 위해서 또 정리하고
이런 식으로 하면, 이거는 이제 프로그램 메모리 공간에서 여기 이제 스택이라고 하는 구조에 들어가요. 여기는. 이런 식으로 이제 우리가 메모리를 자주 높이려면 스택. 그런데 일반적으로 보면 여러분들이 OS 위에서 프로그램을 돌리면서 메모리 구조를 쫙 잡으면
컴퓨터 구조가 아니어서 디테일하게 보면 여기 각각 잡는 구조 영역들이 정해져 있어요. 그래서 처음에 메모리 램, 시작법이 0번지라고 하면 앞에서는 OS에서 지식시가 자체적으로 쓰는 영역이 있고 그 다음에 프로그램 코드가 점유형용, 코드 영역, 데이터 영역, 스텝, 힙 이런 식으로 나눠줘요.
데이터 영역에는 보통은 문자열 상수, C 프로그램에서는 문자열 상수나 글로벌 변수 글로벌 변수라고 하는 것은 우리가 함수 밖에서 정의된 글로벌 변수라고 합니다. 이런식으로 함수 밖에서 정의된 변수들은 글로벌 변수라고 얘기하자. 이런 것들은 데이터에 들어가고 그 다음 스택, 스택 영역 안에는 로컬이나 오토 변수들 혹은 함수의 매개 변수들이 다 스택 영역이 들어가요.
그럼 이제 이런 것들이 함수 안에서 함수 안에서 이렇게 지정된 것들이 우리가 로컬, 오토비언스라고 얘기하죠. 오토비언스라고 얘기하고, 그 다음 여기서 이제 만약에 어떤 내가 function을 막 고른단 말이에요. 어떤 이제 여기 안에서 어떤 f1이라고 function1이라고 하는 걸 부르는데 그러면 이제 여기가, 이건 위 정리가 되어있어야 되겠죠. 그러면 이제 이때 함수를 부를 때 이 함수에 이 변수들을 넘기잖아요.
이걸 우리가 이제 여기에서 함수 매개변수라고 하죠. 정의니까 이 내용은 사실 더 위에서야 되죠. 먼저 나와야 되니까. 함수를 부를 때 함수에 값을 넘기는 이 변수를 우리가 4개 변수화하죠. 그러면 이 함수 4개 변수하고 함수 4개에서 정의된 이걸 우리가 로컬, 오토로 변수화하고 있죠. 그래서 이런 것들은 다 이 스택이라고 하는 영역에 들어간다. 알겠습니까? 그런데 문제가 이 스택은 이 사이즈의 제한이 있어요.
여러분들이 요새는 내가 프로그램을 돌리는데 메모리가 부족해서 1기가, 2기가, 10기가 메모리를 한참 계속 늘려도 그래도 이 스택 영역은 계속 늘어나는게 아니고 사이즈 제한이 있어요. 그래서 이제 프로그램을 여러분들이 막 돌리다보면 이 스택 영역이 꽉 차버리잖아요. 그러면 스택 오버플로우 해가지고 죽어버리는 거예요. 알겠습니까? 보통 일반적인 프로그래밍을 할 때는 사실은 스택 오버플로우 에라이는 잘 안 나오는데
영상 처리할 때는 생겨요. 왜냐하면 영상은 담할 때 데이터가 되게 크거든요. 보통 이미지 같은 게 되게 크잖아요. 64, 64, 80. 1000x2000이 크기 때문에 이거 담기 위한 이런 거를 이제 로컬 변수를 하다보면 스택 영역이 자꾸 잡히다 보니까 금방 꽉 차고 오는 거예요. 알겠습니까? 그래서 이제 영상 데이터를 저장하거나 이런 공간은 이렇게 오토변수로 우리가 지정을 하지 말고
알겠죠? 이렇게 이렇게 하면 이제 힙 힙 영역에 우리가 잡을 수 있는 방식으로 해야 되는데 힙 영역에서 잡는 방식은 다이나믹 메모리 알로케이션이라고 합니다. 다이나믹 메모리 알로케이션 그래가지고 여기 방법이 이제 여기 나와야 돼. 여러분들 C에서 배우는 포인터라고 하는거죠. 포인터. 원사인 캐릭터의 포인터로 지정하고 메모리를 잡죠. C++ 같은 경우는 New Delete. C 같은 경우는 M Allock, C Allock.
그 다음에 메모리를 잡는 거는 사용이 다 끝나면 반드시 이걸 지워주게 되죠. Delete나 Free 같은 걸로. 그래서 이런 식으로 여러분들이 C 프로그램에서 지정을 해가지고 하게 되면 이거는 스택역형이 아니고 C병형이 들어가요. 그러면 C병형은 우리가 물리적인 메모리 공간이 이게 지금 너무 작다 그러면 메모리를 더 늘리면 C병형이 자꾸 자꾸 늘어나요. 그러니까 여러분들이 쓰는데 자위도가 유독이 된다. 알겠습니까?
여러분들 프로그램 짤 때 이렇게 특히 영상체 같은 경우는 이렇게 로컬 변수로 이렇게 어레이로 잡아가지고 이렇게 하면 안 됩니다. 자 지금 쓴 것 같이 이렇게 포인터로 지정해가지고 그 다음에 이거는 이제 그 주소만 나타나는 거니까 공간은 이렇게 메모리를 잡고 다 처리가 끝나면 이제 메모리를 풀어주는 거예요. 어떻게든지 안하고 불편하죠. 이게 메모리 잡고 메모리 프리하고 이런 것들을 해줘야 되니까. 알겠습니까? 알겠죠?
파이썬이나 이런 거는 이제 이런 거 별로 안 써도 되죠. 제가 알아서 다 하니까. 근데 이제 그 얘기한 대로 여러분들 회사 가서 보면 C를 짜는 애들이 무지 많아요. 파이썬이 속도는 누리고 이제 여러 가지 밑바닥을 건드리기가 어렵기 때문에 C를 짜면 이제 사실은 이런 부분도 알아야 되죠. 파이썬에서는 제가 다 알아서 했기 때문에 모르고 있다가 C로 갑자기 하려고 하면 힘들어진 거죠. 알겠습니다. 예전에 이제 내가 LG... 옛날에 20 몇 년 쯤인데
박사받고 LG전자 기술원, 운명동에 있는데 거기서 이제 홍채 지문이식 같은 건데 사람 홍채를 찍어가지고 누군지 판매하는 그런 시스템을 만들어가지고 우리가 팔았어요. 되게 많이 팔린 건 아닌데 그래도 먹고 살만큼 팔았어. 그래가지고 이제 그게 주로 뭐 사실 집에 대문에 달기는 좀 비싸고 그래서 주로 많이 쓰는 게 국경통제였거든요. 그래서 이제 그때 어제는 여러분 이제 싱가포르 가보기 친구들 있는데
싱가포르 가보기가 말레이지아잖아. 그렇죠? 그래서 말레이지아하고 싱가포르 국경을 딱 있는데 싱가포르 일자리도 많고 막 그래 보니까 말레이지아에서 넘어가가지고 막 일하다가 뭐 잘 사는 사람들이 있는데 자꾸 이제 사고 쳐가지고 추방되는 사람도 있단 말이야. 그러면 이제 다시 들어오면 되죠. 그래서 어떻게 하느냐 하면 추방될 때 이 사람 홍채를 들려와요. 그 다음에 다시 싱가포르 입국하려고 할 때 여권 같은 거 유지할 수 있으니까
여권을 딱 대고 자기 눈을 딱 찍는 거예요. 눈은 유지할 수가 없으니까 딱 봤더니 어 너 한번 추강되는데 묻어라 이렇게 해가지고 걸어주고 그래서 그때 이제 우리 유지에서 만든 거를 말레이시아하고 싱가포르 국효에 쫙 깔았어요. 깔아가지고 막 돌리는 거야. 그래서 이제 막 체크하고 했는데 한 달 정도 됐을 때 LG전자 싱가포르 해외폼 쪽에서 화난 목소리로 전화가 오는 거야 아니 시스템을
프로그램을 어떻게 개판으로 짰길래 한 달만에 죽는다고 그래서 자기들이 막 엄청 망친다고 했다고 그런 거 하면서 이제 우리 우리 쪽이 이제 쭉 소프트웨어 개발을 하고 그 다음에 평택인 사업부가 카메라, 하드웨어 쪽을 했거든요 우리 팀이 한 30명 됐는데 다 모였죠? 같이 봐! 그래가지고 프로그램이 한 달 동안 둘 다 죽었다. 누구 잘못이냐. 그러면 한달동안 처음부터 죽으면
돌다가 죽잖아요. 그러면 거의 100% 이거 이거. 이거 이렇게 했는데 뉴, 에멀록, 시어록 했는데 뒤에 딜리트나 프리를 안 한거야. 이게. 그러면 이제 막 지가 두는데 처리 끝나면 프리해서 지워줘야 되는데 안 지우고 그닥 또 잡고 또 잡고 또 잡고 하다보니까 메모리가 나중에 꽉 차버려가지고 죽어버리는거 같다. 그래서 코드 가지고 다 씌울 장으로 각자 한 만 라인씩 이상은 다 됐어요. 자기 거 자기가 보면 못 찾잖아.
자기 거 옆 사람이 보는 거야. 옆 사람이. 불안에 떨면서 내 거에서 나와면 어떡하지? 와~ 했는데 다행히 내 거에서는 안 나왔어. 다른 어떤 사람도 나왔는데 이 사람은 이제 '유'하고'유'를 했는데 뒤에'아~''뒤리트'하고'처리가 다 이 쯤 끝나겠다' 그래서'뒤리트'하고'수리를' 딱 해 줘야 되는데 이걸 깜빡하고 잠깐 답이 필요가 났었어요. 그래서 왔다 보니까 까먹어보죠 자기가. 그래서 이걸 한 줄 떼 먹었더니 둘 다 죽은 거죠.
그래서 시유를 짤 때는 항상'유'하고 그 다음에'사람의 기억력이 제한이기 때문에' '유'쯤에서 반드시 끝난다 그러면 이걸 먼저 써주세요. 이렇게'뒤리트'하고'수리'를 그렇기 때문에 그 사이에'자유'의'유'을 써주면 되죠. 알겠습니다. 자 그러면 그렇고 그 다음에 뭐 아까 얘기했던 거죠. 그래서 여기 보면 여기 이제 함수 매개변수고 이게 이제 로컬 오토변수고 그 다음에 이제 그 뭐 여러분이 시 배울 때 보면 그 재교출이라 그래가지고
자기 함수가 자기 권을 또 부르는 경우 있죠. 그죠? 재교출 단어를 쓰지 말라고 되죠. 그죠? 그 이유가 지가 지향수를 또 부르고 또 부르고 할 때마다 이 함수 매개변수를 아까 어디에 저장한다고 그랬어요? 스택에 계속 쓴다고 했죠. 스택 사이즈 제한이 있으니까 이게 재교출 자꾸 부르다보면 스택에 꽉 쳐버려가지고 스택 오버플로우가 나는 거예요. 그래서 프로그램 짤 때 이제 재교출은 이제 부르고 안 된다. 알겠습니다. 그래서 이제 내가 C코드 쪽은 사실은 시간이므로 없어서
이제 영상 처리할 때 결성 설명은 안 할 거고 그래서 이제 가장 중요한 게 사실은 이렇게 저장할 수 있는 메모리 공간 작업이기 때문에 이 정도만 여러분들이 좀 확실하게 잘 기억하세요. 감사합니다. 그러면 그 다음에 아까 얘기한 영상의 포인터 처리, 픽셀 처리 해가지고 원본 영상에다가 어떤 값을 더하거나 빼거나 이렇게 하죠. 그러면 당연히 픽셀 값을 더하면 픽셀 값이 더 올라가니까 밝아지겠지. 그죠?
그 때문에 이제 어서워주고. 그죠? 이렇게. 그 다음에 이것은 뭐냐면은 어떤 그 여기 출력 처리된 값이 여기 어쨌든 값이 0에서 255범위에 포함이 되어야 되기 때문에 이것보다 크거나 작은 경우에는 이제 우리가 클립핑 잘라가지고 각각 255범 0으로 이제 젖아가는 이런 루티를 여러분들이 반드시 포함을 해줘야 됩니다. 그 다음에 아까 얘기한 어떤 픽셀 값에 값을 더하거나 더하면 값들이 올라가니까 밝아지죠.
그 다음에 곱하는 경우에, 곱해도 픽셀 값이 커지죠. 10, 12, 14, 2 곱하면 이렇게 되잖아요. 근데 이제 더하고 곱하는 경우에 둘 다 픽셀 값이 올라가니까 밝아지는 건 동일한데 차이가 요거는 10, 11, 12, 13에서 픽셀간의 차이가 뭐예요? 1, 2, 1, 2자각이죠. 근데 얘는 2배를 했더니 당연히 차이가 2, 4, 2, 4. 픽셀간의 차이값도 커지죠. 맞습니까?
픽셀값 자체도 커지면서 밝아지는데 픽셀과 픽셀값 간의 차이값도 커지잖아요. 그럼 차이가 어떤 의미냐이냐면은 예를 들어서 만약에 10이 어떤 얼굴 뺨에 있는 점이라고 생각해요. 그 다음에 이건 이제 뺨에 있는 피부고 그러면 여기 점인 10하고 옆에 12는 픽셀값이 차이값이 안 나니까 우리가 눈에 잘 안 띄죠. 그렇죠? 그래서 이걸 20 더해도 똑같이 1, 2차이니까 눈에 안 띈단 말이에요.
그런데 곱하기 2를 하면 차이가 2, 4가 되니까 차이값이 더 커지니까 우리 눈에 띄겠죠. 그러니까 곱셈을 하게 되면 영상도 밝아지는 특성이 있지만 선명도도 올라가는 거예요. 이런 점 같은데도 잘 보인다는 거죠. 보겠습니다. 반대로 노이즈 같은 것도 더 잘 보이겠죠. 그래서 우리가 더셈, 곡셈은 둘 다 영상이 밝아지는 효과는 있지만 곡셈은 특별히 영상의 선명도, 노이즈 같은 것도 더 올라가게 된다.
그래서 영상의 컨트러스트, 대조가 올라간다. 반면에 뺄셈, 나노셈은 둘 다 어두워지는데 나눗셈은 곡셈의 반대이지. 이 픽셀간의 차이가 더 줄어드니까 이게 영상의 설명도가 떨어지는 거죠. 알겠습니다. 알겠어요. 자 그 다음에 이제 히스토그램. 우리가 영상 처리할 때 히스토그램이라고 하는 게 많이 나오는데 히스토그램은 뭐냐면
영상의 어떤 명함과 프로파일을 보여주기 위한 이런 그래프를 히스토그램이라고 해요. 그래서 여기 가로축이 픽셀값, 밝힌값이고 세로축이 픽셀의 개수를 나타내는 이런 그래프예요. 그래서 만약에 이런 4x4짜리 이미지가 있다. 이거 히스토그램을 구해본다. 간단해요. 여기서 0인 픽셀값이 0인 픽셀이 없죠. 0인 건 없고, 1인거, 1인거가 총 몇개요? 봤더니 하나, 두개네. 2인거는 하나, 두개네. 3인거는 하나, 둘, 셋, 넷, 다섯개. 4인거는 하나, 둘, 셋, 넷개. 5인거는 3. 하나, 둘, 셋, 넷개. 이렇게.
그래서 이게 히스토그램이에요. 그러니까 우리가 이미지를 주고 히스토그램을 구하라고 하면 구할 수 있겠죠. 그렇죠? 여기 가로축은 밝기값이고 세로축은 개세로 표현하면 되죠. 알겠습니다. 자 그럼 이거 뭐 어떻습니까? 자 이걸 딱 보면 이미지가 뭔지 몰라요. 모르지만 제가 봤더니 여기는 지금 3인 픽셀이 좀 많이 있고 1, 2인 픽셀이 좀 작고 4, 5인 픽셀은 좀 1, 2보다는 조금 더 많이 있다.
영상이 대략적으로 우리가 히스토그램을 알 수가 있는 거예요. 알겠습니다. 자, 여기 시험 문제는 내가 이제 500점 짜리로 될거에요. 자, 여기 히스토그램이 주어졌어요. 이거로부터 우리가 이 이미지를 얻을 수가 없죠. 그죠? 왜냐하면, 여기서 이 3의 위치가 여기가 아니고, 여기가 내려왔어요. 여기 3, 3, 4, 5가 아니고 거꾸로 4, 5, 3, 4이어도 히스토그램은 동일하죠. 그죠? 그러니까 우리가 여기서, 여기로는 우리가 유니크하게 하나씩 정해지는데,
이 히스토그램에서 이 이미지는 여러 경우가 존재할 수가 있죠. 그죠? 그래서 히스토그램에서 원래의 이미지는 알 수가 없다. 알겠습니다. 히스토그램 자 그 다음에 여기 있는 이 픽셀의 값을 다 더하면 여기 전체 픽셀 값이 되겠죠 그죠? 여기 보면 여기 2, 2, 5, 4, 3을 다 더하면 16개니까 여기 전체 픽셀의 개수가 되겠죠 그죠? 자 그래서 이제 여기 보세요. 여기 보면
동전의 히스토그램 공포 여기 지금 어디서 이미지 나왔냐면은 그.. 여러분 500원짜리하고 500인짜리하고 크기하고 무게가 거의 똑같은 거 아세요? 어디 가서 나한테 들었다고 하지만 그래서 옛날에 실제로 막 사고도 생기고 그랬어요 그래서 이게 10대 1이잖아요 500엔이면 5천원이잖아 그래서 500원짜리 샤드폰 바꿔서 저기 어디에요? 대마도 같은 데로 와서
자판기에다 잡지어 놓고 10대 1로 해서 이렇게 해서 뽑아서 갖다서 팔고 자판기 열어보니까 500인줄 알았더니 500원짜리가 들어가 있는거야. 무게와 크기가 비슷해가지고. 보통 동전 바꿀 수도 없고. 그래가지고 안되겠다 해가지고 요새는 자판기 안에다가 카메라를 설치돼요. 카메라 해가지고 자판기 안에는 어두우니까 조명같은걸 비춰가지고 동전의 모습을 찍어보면 이게 500원인지 500인줄 알 수가 있잖아요.
그래서 요새는 그 이미지에요. 이렇게 해가지고 이미지가 딱 찍혔으면 그러면 바닥은 조명 속도 하는 어두운 부분이고 동전 부분은 금속이니까 밝죠. 그래서 요새 히스토그램을 구해보면 이렇게 나와요. 그래서. 각각의 밝기 값이 어떻게 되죠? 여기가 가질 수 있는 픽셀이 가질 수 있는 값이니까 이게 얼마나 될 수 있냐면 0에서 2에 8세 마약셀. 0에서 250으로 하는게죠. 그러니까 이 가로축은 0에서 255까지 될 거고
그 다음에 이 세로축은 각 화소의 개수가 되기죠. 그죠? 대략 푸려보니까 이쪽에 물로 있고 이렇게 있고 그 다음에 또 약간 이게 더 밝은거죠. 밝은거고 어두운거. 밝은거가 이렇게 있고. 그러면 이제 뭔지 보지만 대략 이 부분이죠. 아 여기 안에는 어두운 부분 많은 픽셀하고 밝은 부분 픽셀이 있겠구나. 알 수가 있겠죠. 이미지가 뭔지 모르지만. 알겠습니다.
그런데 이거 나중에 우리가 또 얘기할텐데, 이거 인식하려면 동전 영역을 잘 찾아야 되잖아요. 그러면 가장 싱크로하게 찾을 수 있는게 우리가 이진화라고 해서 요정도, 100에서 150이니까 중간에 125정도 되겠죠. 125. 그래가지고 여기 이제 자 요게 이게 지금 값을 읽어 가지고 이미지안을 저장해 놨단 말이야.
그래서 이제 포르프 해가지고 막 보겠죠. 읽으면서 요 값이 125보다 작으면 어두우면 출력이니까 0. 0이 블랙이죠. 이제 블랙으로 표시를 하고 그 다음에 그렇지 않으면 125보다 크면 125보다 큰게 어디에요? 여기죠? 여기. 여기이면 이 출력값에다가 255를 넣어. 알겠습니까? 그러면 입력 이미지 값이 125보다 작으면 검정.
125보다 크면 흰색. 파이트. 아 아 제일 푸시할 게 있죠. 여러분 이제 여기 부분이 동성 부분이 다 파이크로 표시가 되고 이 배경이 다 검정으로 표시가 되겠죠. 알겠습니다. 이런걸 우리가 이제 바이너 바이러시기 바랍니다. 그 다음은 처리가 쉽죠. 그러면 이제 스캐나 하면서 우리가 250으로 표현되는 것이 다 동전입니다.
그러면 이제 그것만 입어가지고 처리를 하면 되겠죠. 알겠습니까? 알겠어요? 그럼 이제 그때 우리가 얘를 얼마로 잡을 건가? 이거 모르잖아. 그거를 이제 히스 포렘을 딱 구해가지고 봤더니 아~ 여기 몇쯤을 하면 이제 여기 배경하고 동전이 딱 공부가 되네. 그러니까 이제 모르잖아. 히스 포렘을 구해가지고 이 중간지점, 125라고 하는 숫자는 처리키고 되죠. 알겠습니다. 알겠습니다.
알겠죠? 자, 그러면 30분 됐으니까 우리 또 쉬었다가 30분 쉬었다가 보러 갈게요.
그 다음은 이제 우리가 예를 들면 여기 픽셀이 0에서 120까지 있었다. 그런데 이거를 만약에 90에서 250 이렇게 바꿨단 말이죠. 그러면 이거는 이제 픽셀 3간의 간격이 가장 어두운 곳에서 발성된 게 120이고 얘는 지금 이게 160 정도 되잖아요. 그러면 얘 대비 얘 보면 픽셀 3 사이의 간격이 가장 어두운 곳에서 가장 밝은 게 160.
120에서 160으로 커졌으니까 우리가 앞에 그 곡선을 하는 식으로 픽셀과 픽셀 간의 간격 차이가 더 커지는 거죠. 그러니까 우리가 이렇게 되면 이제 영상이 더 선명해지겠죠. 우리가 조금 이따 얘기할 영상을 선명화하는 방법 중의 하나가 히스토그램 이퀄라이제이션이라는 건데 거기에 이제 히스토그램을 이렇게 바꾸는 이런 동작을 하게 되면 이미지가 밝아지면서 선명해지는 거예요.
이렇습니까? 이제 그 곡을 조금 이따 먼저 볼게요. 자 이거는 아까 얘기했던거고, 영상 이진화. 자 그래서 이제 이거는 내가 앞에서 이진화 할 때 보면 히스토그램 보고 125라고 해서 했는데 실제로 이미지가 서명으로 찍었을 때 내가 일일이 이미지 보고 멘탈이 이건 125, 127. 이렇게 일일이 손을 해줄 수가 없죠.
자동으로 이제 125라고 하냐 이걸 우리가 임비치라고 해요 임비치네. 그래서 지정을 해 줘야 돼요. 그래서 자동으로 잘 차는 알고리즘을 얘기할 건데 예를 들어서 이제 만약에 임시가 해치됐다. 그럼 아까 얘기한 대로 여기 어두운 배경이고 여기 동전이잖아요. 그러면 우리가 딱 막을 때 여기와 이 사이 여기 우리가 삼봉오리와 삼봉오리라고 하면 이 봉오리와 봉오리 사이 골짜기 지정을 자동으로 지정.
그래서 자동화 알고리즘들이 보면 이런 봉오리와 봉오리가 있는 골짜기 지정을 자동으로 찾는 식으로 한단 말이죠. 여기 이제 만약에 내가 인계치를 잘못 찾았다. 인계치를 한 이 쯤 잡아야 되는데 너무 작게 잡았어요. 이렇게 작게 잡으면 어떻게 돼요? 이 부분은 실제로 여기 이제 동작이 어떻게 돼요? 여기 인계치보다 작은 것은 검정. 이 부분은 큰 것은 다 흰색으로 하는데 얘는 지금 뭐예요? 배경이잖아요. 배경. 쓸데없는 배경들이 다 흰색으로 표현되니까 이렇게 되겠죠.
그 다음에 임기치를 너무 높게 잡아서 그러면 이런 데는 실제로 밝은 동전인데 임기치보다 작으니까 배경으로 해버리면 어떻게 돼요? 동전 부분이 검정으로 표시가 되겠죠. 그러니까 이렇게 동전 부분이 뚫리게 되는 거죠. 그래서 정확하게 이 지점을 잘 찾아줘야 됩니다. 그래서 이제 이러한 방법들이 여러 개가 있는데 가장 많이 쓰는 게'론자레스 우수'라고 하는 방법이에요.
요거는 일단은 초기 그... Threshold 초기 값을 때 추정을 해요. 초기 값을. 그래서 이제 그... 일단 모습을 봅시다. 추정을 한 다음에 추정한 값은 어떻게 해야 되냐는지 처음에는 영상에서 가장 어두운 값과 최대 값, 밝은 값의 중간 지정을 이벤트 지정을 해요 일단 먼저. 지정을 하고 그 Threshold를 기준으로 영상을 두 분으로 나눠요. 그래서 밝기값이 이 세설보다 큰 화소로 구성된 영역과
이거보다 작은 화소로 구성된 영역 G1하고 G2로 나눈 다음에 각각 G1 G2의 화소들의 밝기 평균값 이 평균값, 이 평균값을 각각 계산하고 그 다음에 그 두 개의 또 다시 평균을 보여요. T 그 다음에 이 과정을 다시 반복을 합니다. 그러면 이 Threshold가 처음에 잡은거 대비로 이렇게 하면 바뀌었겠죠.
그래서 이 바뀐거 가지고 다시 한번 또 2번을 반복을 해요. 이 Threshold를 기준으로 이진화를 두 부분으로 나눈 다음에 각각의 또 평균을 구하고 또 그 두 평균의 또 평균을 구해서 구하고 그래서 여기서 이거를 이렇게 계속 반복을 하다가 언제까지 계속 보냐면요. 이 Threshold가 이제 이전에 110이 나왔는데, 이것까지 다 처리했더니, 이게 거의 변동이 없어요. 110 똑같이 나왔어요.
그러면 더 돌릴 필요가 없죠. 그러면 이제 스탑하고, 이제 나가서 110을 최종 3솔으로 하는 거예요. 알겠습니까? 그러니까 이것의 기본 과정이 이런식으로 히스토그램이 배경하고 이렇게 있으면 처음에는 가장 어두운 것, 가장 밝은 것 만약에 픽셀 부분을 보시면 이것이 주황지점을 스트레스 홀드로 잡잖아요.
그래서 주황지점을 하나 스트레스 홀드로 잡아서 여기 각각의 뉴 원, 뉴 투 구한 다음에 다시 평균을 보이고 바꾸죠. 처음에는 가장 어두운 것, 가장 밝은 것 중앙지점을 주니까 127의 것이고 127 기준으로 이 영역, 이 영역 각각 평균에서 또 다시 평균에서 이렇게 계속 조정을 하면
이 영역이 대략 이런 식으로 양본이 되는 식으로 되시면 처음에 스냅스 홀드가 중앙이 아니더라도 이런 식으로 반복해서 돌다보면 스냅스 홀드가 이 두 역이 그래야 이렇게 되면 딱 흔들라는 값이 그런 부분 그러면 그걸 기준으로 이것은 영역이 다른 것 같이 두 개가 나오는 이런 이미지의 경우에만 저를 보면 예를 들어서 어떤 이미지가 있는데
이렇게 가위동주전이 있고 어떤 다른 공체가 있는데 이것은 이제 되게 어두운 영역에 가까운 것이고 이것은 이제 290로 가까운 것이고 그럼 이런 거고요. 이런 경우에 문포와 제기가 있잖아요. 이런 경우에는 이 문자리에서 유도 방법으로 하면 영역이 두 개 있는. 이런 이미지에 따라서 이진화를 하는데
여기에 배경과 동전을 이런 식으로 두 개의 영역이 비슷한 문포가 비슷한 두 개의 영역이 있는 이미지고 여기에 내가 이진화를 해야 된다. 이런 이미지라고 하는 방법이 있습니다. 되겠죠? 그 다음에는'wants'라고 하는 사람의 방법이 있는데 이거는 두 클래스 간의 분산을 최대한 최적의 스네스월를 찾는 방식인데 이거는 수식을 다음과 같은 걸 써요. 그래서 얘는 어떻게 보면 처음에
앞에서는 이제 여기 최대값하고 최소값 사이의 중간값으로 Threshold 해가지고 이렇게 갔잖아요. 얘는 이 Threshold는 이제 제일 작은, 작은 0에 가까운 것부터 하나씩 하나씩 옮겨가면서 이걸 계속 계산을 하는 거예요. 그래서 처음에 이제 Threshold를 이제 0에 가까운 여기를 하나 잡으면 또 이 Threshold보다 작은 영역, 큰 영역이 두 개만 나오겠죠. 그래서 각각에서 이 평균을 구하고 그 다음에 뮤티는 전체 영상의 평균가
이렇게 해서 이걸 계산해서 그래서 이걸 이제 이 스트레솔드를 점점점점 올라가면서 다 계산해가지고 이게 가장 최대화되는 최대화되는 지점이 이 중간 스트레솔드가 이제 줄어든단 말이에요. 그래서 이게 이제 오취의 방법이고 그래서 이게 기본과정은 뭐냐면은 이렇게 두 공포가 이렇게 될 때 스트레솔드를 이 중간 지점으로 이렇게 찾아가지고 하면 이 영역하고 이 영역 나오잖아요.
그러면 이제 우리가 이 두 개의 공포 이거 각각을 크레스라고 그러면 스트레솔드를 이렇게 두 개를 이렇게 잡으면 이 크레스와 이 크레스 아래의 분산 떨어진 정도가 최대화되는 최대화되는 스트레솔드를 이렇게 잡아가지고 영역을 이렇게 각각 잡았을 때가 이렇게 잡았을 때가 그래서 이 수식에 의해서 돌리게 되면 이 두 공포의 골짜기 지점을 잡게 됩니다. 대부분의 경우는 공포가 두 개가 나오면
이 권잘레스 우드 방법이나 오쥐 방법이나 이게 사실은 거의 비슷하게 나와요. 그래서 이제 뭐 약간의 차이가 있는데 그러니까 권잘레스 방법은 이제 뭐 이런 식으로 하고 오쥐 방법은 이 수식에 의해서 이 스트레스 볼드를 작은 공포까지 바탕하면서 이게 최대가 되는 이 시점을 잡니다. 이렇게. 자 그래서 이제 보면 여기 뭐 나와있죠. 이 동전 이미지인데 권장에서 의도 방법으로 했더니 둘 다 인기치 100으로 제가 잘 잡았어요.
별거 동일하죠 그죠. 그 다음에 여기 랜아 이미지 같은 경우는 약간 이 차인데 뭐 이건 사실은 뭐 정답이 없죠. 이게 뭐 사실은 어느 부분을 250으로 하고 어느 부분을 0으로 하고 정답이 사실은 없어서 이게 어느게 더 잘 됐다고 보면 대부분의 경우는 이제 두 개가 거의 결과가 비슷합니다. 영상이 지난 주로 쓰는 게 OCR라고 하는
오틱한 캐릭터를 보고 계시는 거예요. 광화물자인 거에요. 종이에 검정 글씨가 있잖아요. 이건 배경, 아까랑 반대경이죠. 배경이 희색이고 그 다음에 앞에 물체가 검정이죠. 배경과 글자 두 가지만 있는 경우이기 때문에 이런 경우에는 이신화를 해서 영역을 찾죠. 알겠습니다. 그 다음에 이제 우리가 히스토그램.
이 히스토그램을 용도해서 아까 얘기한 영상의 전체적인 특성. 아까 얘기한 발길이라든지 대저공포를 파악하는 데에 썼죠. 그래서 히스토그램을 파악할 수 있고. 영상이 이진화. 히스토그램을 딱 보고. 이 지점, 주방지점, 슬리스로를 하는 거. 세 번째 용도가 뭐냐면은 영상의 화질 계산. 아까 넓힌 얘기했죠. 히스토그램을. 이제 오른쪽으로 옮기면서. 이 퍼트 있는.
픽셀과 픽셀과의 간격이 벌어지는 것. 영상이 화질 개선할 때 히스토그램입니다. 그래서 화질 개선할 때 많이 쓰는 방법 중의 하나가. 가장 대표적인 게 히스토그램이 이콜라이저. 이콜라이저라는 말 많이 들어봤죠. 오디오 같은 데서도 이콜라이저. 이런 기법이에요. 그 다음에 히스토그램 스트레칭, 히스토그램 스페스트 귀를 사용합니다. 시스토그램 이퀄 라이제이션. 여기 보면 다음과 같은 이미지가 있어요. 34344332. 이렇게 4x4짜리 이미지.
그러면 이제 요거의 시스토그램을 구하면 0인 픽셀이 1개가 있네. 그 다음에 1인 픽셀이 2개, 2인 픽셀이 2개가 있지. 3인 픽셀이 1, 2, 3, 4, 5, 6개 있죠. 4인 픽셀이 4개가 있지. 이렇게 히스토그램을 구했어요. 그러면 우리가 이런 표를 구하는데, 알고리즘이 내부적으로 동작이 되는 거예요. 0인 픽셀.
0인 픽셀이 1개죠. 그러면 여기서 뭘 번역을 누적합이라고 하는 걸 보여요. 맨 처음에 0인 픽셀은 1개고 1인 픽셀은 2개고 2는 3개, 3은 6개, 4는 4개죠. 요거가 결국은 히스토그램이죠. 누적합은 뭐냐면은 이 개수를 누적, 계속 더해 나가는거에요. 그러면 여기가 1이고, 그 다음에 이거는 일각이하니까 3이고, 3에 또 3을 넣으면 6이고, 6에 또 6을 넣으니까 10이고, 여기다 4을 넣으면 16이 되겠죠.
그러면 맨 마지막에 유적하면 이 숫자가 이 영상의 픽셀수랑 가사의 되겠죠. 그죠? 왜냐하면 전체 픽셀의 개소를 다 더한 거니까. 알겠습니다. 여러분 계산했을 때 누적하되 이 최대값이 영상의 픽셀수랑 같아야 돼요. 이게 틀리면 여러분들 계산을 잘못한거야. 알겠습니다. 자 이렇게 되고. 그 다음은 정규와 합이라고 하는 걸 보았는데 정규와 합은 공식이 이렇게 돼요. gmax를 nt로 나눈 다음에 누적합으로 곱해요.
그래서 gmax는 뭐냐면 내가 Histogram Equalization, HE가 Histogram Equalization 약자입니다. HE, Histogram Equalization을 통해서 얻는 결과 영상에서의 최대 밝기값이에요. 그래서 이거는 여러분들이 지정할 수 있어요. 일부러, 임의로. 원래 영상에서는 최대 밝기값이 다 했잖아요. 근데 내가 이 영상을 최대 밝기값이 7 정도로 밝게 하고 싶다.
그럼 여기 GMAX 대신에 7를 써주면 돼요. 내가 최대 밝기값을 100으로 하고 싶다. 그럼 GMAX 대신에 100으로 하면 됩니다. 알겠습니다. 그 다음에 NT는 뭐냐면은 영상의 전체 픽셀수. 4x4, 16일 수 있죠. 16. 16분의 11 곱하기 여기 누적한 방법으로 있잖아요. 이걸 곱하면 돼요. 그럼 16분의 11 곱하죠. 그럼 이 계산은 6.4가 나옵니다.
우리가 픽셀값에서 정서를 표현해야 되니까 이제 우리가 반올림을 하거나 아니면 버림을 하거나 할 수 밖에 없죠. 그래서 뭐 일반적으로는 버림을 해가지고 반올림을 해가지고 정서를 하는데 그거는 여러분들이 알고리즘 지정하기 다른데요. 0.5보다 큰 경우만 버림을 했구나. 버림을 해서 펴는 거고 나는 이제 여기서 반올림을 하겠다. 이렇게 지정할 수 있습니다.
그거는 개발자들이 지정하면 되는 거에요. 그래서 여기 보면 0.43은 0. 그 다음에 이건 개선 1.31. 버림을 해서 1. 2.63. 버림을 2.25는 5. 그 다음에 맨 마지막. 맨 마지막은 16분의 7에다가 누적합 최대 숫자가 얼마에요? nt랑 같을 수 밖에 없죠. 그러니까 이건 16기점이죠. 그러면 이거는 gmax죠. 결국 맨 마지막 값은
우리가 임의의 지점을 원하는 최대 밝기가 되죠. 그래서 값을 얻으면 변화를 어떻게 하냐면 원래 있는 0값은 0으로 1은 1로 2는 2로 3은 5로 4는 7로 바꿔주게 됩니다. 그러면 어떻게 되요? 0은 0으로 바뀌고 1도 그대로 내, 1도 그대로 바뀌고 2도 그대로 내, 2도 다 그대로 바꾸고 3이 5로 바뀌었대 그죠?
3이 5로 바뀌었죠 그죠? 그 다음에 이제 4가 우리가 원하는 max, gmax 7로 바꿔줘 그죠? 그러면 이제 히스토렘 그려보면 원래 히스토렘이 이렇게 됐는데 이퀄라이제이션 한 다음에 이미지가 이렇게 바뀌었고 여기 보면 어떻게 되요? 0, 1, 2는 같고 그 다음에 3, 4가 없어지고 5, 7로 바뀌었죠 그죠? 557 이렇게 되죠. 그러면 얘 대비 얘가 어떻게 되죠. 이게 최대값도 커졌고
그 다음 픽셀간의 간격도 더 커졌죠. 그죠. 그러니까 이게 영상이 되죠. 또 올라오죠. 알겠습니까. 얘는 지금 보면 얘는 지금 1,2간격으로 등간격인데 얘가 등간격이 아니죠. 얘는 1,2간격인데 얘는 갑자기 3간격이고 등간격이 아니죠. 그래서 여기 등간격이 아니라서 우리가 이거를 이렇게 바꿀 때 선형으로 스케일링한 게 아니고 널미니어 비선형으로 스케일링한 개념으로 본다.
여기가 다 1량 등간격이었는데 요거는 등간격이 아닌 거로 바뀌었잖아요. 그렇죠? 널미니어 스케일링. 알겠습니까? 히스토그램 프로아이제이션은 우리가 널미니어 스케일링이다. 히스토그램 평화란 그 다음에 히스토그램 스트레칭. 이건 간단해요. 아까 동일한 이미지 있죠. 34346 이미지가 있는데 얘를 어떻게 바꿔주냐면 이 식에서 바꿔주세요. 이 식이 뭡니까?
이 비리식에서 나온거에요. 우리가 하이하우 로는 원래 이미지에 가지고 있는 가장 밝은거하고 가장 어두운거에요. 그러면 가장 밝은게 4고 가장 어두운게 0이죠. 4, 0. 원래 이미지에서 가지고 있는 가장 어두운 것과 가장 밝은 것의 차이 4-0 이것은 여러분이 지정하는 거예요. 원래 이미지에서는 가장 밝은 것과 가장 어두운 것의 차이가 4였는데
나는 이 차이를 얼마로 바꾸고 싶냐 하면 255 차이만큼 바꾸고 싶은 거예요. 원래 이미지의 가장 어두운 것과 가장 밝은 것의 차이가 4였는데 나는 이 차이를 255 차이만큼으로 벌리고 싶어. 그러면 이것은 원래 이미지, 인 이미지 빼기로. 빼기로는 뭐예요? 이거는 원래 이미지에서 가장 어두운 값을 뺀 거죠. 이것은 뭐예요? 가장 밑바닥이 된 기준 값을
-로를 하면 0이 되겠죠. 원래 이미지 값을 0으로 바꿨을 때 이것이 output 이미지 어떻게 바뀔 건가. 알겠습니까? 이런 쪽으로 말이죠. 원래 이미지의 가장 어두운 것과 같은 것의 차이를 내가 255레벨로 크게 바꾸려고 하면 원래 이미지 -로로 0으로 바꾼 이 픽셀 값이 output 이미지에서는 어떻게 바뀔 건가.
이것은 수식에서 내항, 외항, 곱해서 equal하면 이렇게 나옵니다. 알겠죠? 이것은 직관적으로 봐도 비리식이죠. 선형 스케일링, linear 스케일링입니다. 그래서 계산을 해보면, 이것을 계산을 해보면 이거죠. 여기 보면 high-row가 4였죠. 4고. 내가 아까 이거 최대치를 250. 이거는 여러분 지정할 수 있다고 했어요.
내가 250으로 줬고. 그 다음에 inimage-row. 여기서는 row가 0이죠. 그죠. 그래서 이거 4분의 1. 그러니까 inimage자가 4분의 250으로 곱하는거지. 같은 배율자로 곱하니까 등간격이 되겠죠. 그래서 이제 4분의 1이 50원 63.75고 그렇게 해서 보면 0인 픽셀 값은 63.75 곱해봐 0이고 1인 픽셀은 63.75인데 버리면 63 2는 127, 3은 얼마, 4는 250 이렇게 됩니다.
그래서 요거가 요거가 요거에서 바뀌면 0, 63, 127 이렇게 해서 등간격으로 바뀝니다. 알겠습니다. 보겠죠? 그리고 이제 힐을 통해서 스트레칭. 그럼 앞에 이 퀄라이제이션이라는 차이가 얘는 등간격인데 비등간격으로 이런 부분이 생기는데 얘는 여기 등간격이면 등간격이 유지가 되죠. 맞습니까?
이런 차이가 있다는 거 자 그 다음에 그래서 중요한게 어떤 경우에 히스토그램 이퀄라이제이션을 하고 어떤 경우에 스트레칭을 하냐 히스토그램 이퀄라이제이션은 우리가 영상의 전체적인 부분에 대조도를 높이고싶을 때 영상 전체적으로 다 대표적인게 랜아 이미지 같은거죠 얼굴 이미지 같은거는 영상의 일부분이 아니고 전체적으로 얼굴, 모자, 배경, 어깨 이런곳에 다 포함해서
선명하게 만들고 싶을 때 이럴때는 히스토그램 이퀄라이제이션을 쓰는게 성능이 좋구요 그게 아니고 아까 얘기한 동전 이미지 같은거 있죠 동전, 배경, 동전. 이거는 다 선명하게 만드는게 안좋아요. 왜냐하면 우리가 동전 부분만 선명하게 만드는게 좋죠. 괜히 어두운 배경까지 밝으면서 선명하게 만들다보면 어떻게 되요. 그게 배경이 밝아지고 선명해지니까 동전이랑 비슷해져 버리면 이게 나중에 구별하기 어려워지잖아요.
이런 경우는 우리가 동전만의 대존도를 높이고 싶다. 이런 경우에는 히스토그링 스트레칭 쓰는게 좋습니다. 그래서 영상을 여러분 딱 보고 아, 내가 이거는 무슨 풍경영상이다 전체적으로 다 선명하게 만들어야 된다 그러면 Histogram Equalization을 쓰고 이 영상에서 나는 일부분만 좀 선명하게 만들고 싶다 그러면 Histogram Stretching을 쓰면 됩니다 알겠죠? 마지막으로 Histogram Specification 지정
우리가 본 Histogram Equalization하고 Stretching은 입력 영상 한 장을 넣으면 출력 영상이 한 장이 나오는 식이에요. 마지막으로 Histogram Specification 지정은 입력 영상을 두 장을 넣어주세요. 두 장을 넣고 출력 영상은 한 장을 얻는 거예요. 이게 지금 이런 경우인데 이게 지금 토성 이미지를 찍었어요. 어느 순간에 위성이 벌면서 찍었는데
그 순간에 이미지가 개판이야. 띠도 잘 안 보이고 그렇다고 위성 벌면서 다시 가서 찍으라고 할 수 없잖아. 이미지 벌릴 수도 없고 옛날에 여기를 선명하게 찍어놓은 이미지가 있어요. 그러면 얘하고 얘는 지금 토성 크기도 틀리고 사실은 위성하고 토성 거리도 틀리고 화각도 틀리지. 하지만 대략 이게 토성이 선명하게 나오면 얘의 픽셀 기간의 분포가 이렇게 된다라고 하는 것을 알고 있어요. 우리가.
그래서 이미지가 두 장이 들어가는거에요. 그러니까 얘는 우리가 미리 알고있지. 그래서 이 이미지가 있으면 지금 현재 찍힌 이 이미지가 얘랑 비슷하게 만들자. 그러면 다시 찍을 필요 없이 이 이미지가 이렇게 선명해진다. 여기 이제 우리가 Histogram Specific의 개념입니다. 알겠습니까? 이렇게 그래서 우리가 이제 적용된 이 Histogram 이미지가 있으면 현재 드론 입력 이미지를 얘랑 비슷하게 만들면
우리가 최종적으로 선명한 이미지를 바꿀 수 있다. 알겠습니까? 여기 Historic Specification. 자 그러면 지금 얘를 어떻게 얘랑 비슷하게 만드는지. 이게 고라프죠. 여기 보면 이 초성 크기도 틀리고 위치도 틀리고 다 틀리잖아. 그러면 이제 여기서의 관건이 뭐냐면은 Histogram을 비슷하게 만들면 돼. Histogram을. 그러면 얘의 Histogram을 구하면 이렇게 되죠. 그죠? 여기 이제 발단 말이야. 발근역이 크죠. 그죠? 이렇게 되어있고. 그 다음에 예전에 잘 찍어놓은 이미지는
이런 식으로 되어있어요. 그러면 얘를 얘랑 비슷하게 만들어주면 돼. 알겠습니까? 이 Histogram을. 자 근데 얘를 이렇게 만들어야지 고라프가 어떻게 만들겠어요? 너무 힘들잖아. 그래서 이제 예능이 뭐냐면, 우리가 입력이 이거고 내가 만들고자 하는 시스템이 이러면 여기서 직접 이렇게 바꾸려고 하는게 너무 힘들어요. 그래서 여기서 이 누적합, 아까 정규화합 있죠? 그거를 누적 구해요.
그러면 아까 어떻게 됐었죠? 기본 개념이 이 픽셀값들을 다 더해 나가잖아요. 더해 나가고 거기다가 일정값을 곱하죠. 누적합, 정규합도 마찬가지로 이게 값이 계속 더해 나간 개념이잖아요. 그러면 여기서 이 값에다가 그 다음 더하고 곱하고 더하고 더하고 하면 여기 히스토그램이 서서히 커지는게 되겠죠.
그래서 맨 마지막에는 이 값이 전체 영상의 픽셀투랑 같아지죠. 그 다음에 우리가 반기를 원하는 이미지에 걔도 마찬가지로 이렇게 구하고 그러면 여기서 이걸로 바꾸는 것은 까다로운데 이거는 딱 봤더니 이게 쉬워요 이게 보면 이렇게 튀어나온 것만 이렇게 약사하게 만들어주면 되죠 그러니까 얘 가지고 얘를 바꾸는 게 훨씬 얇게 쉬워지는 거죠 알겠습니까? 그래도 여기 지금 보면 여기 C에서 명함값 0인 값이 4인데
여기서 이제 가장 가까운 게 뭐냐 봤더니 여기 뒤에서 밝기값 1 1이 5, 5로 해서 제일 가까운 그러니까 여기 4인 거랑 가장 가까운 게 봤더니 여기가 5, 5인 히스토그램 1인 1이 제일 가깝단 말이죠 그러니까 그러면 우리가 0을 1로 바꿨다 두 번째, C에서 명항각 E 일대의 히스토그램이 20인데 여기서 20에 가장 가까운게 맞더니
5 일대 20이 제일 가깝단 말이죠. 그러니까 우리가 2를 5로 바꾼다. 이런 식으로 바꿔주게 되면 툭 튀어나온 블록한 히스토그램이 이렇게 약삭해진단 말이죠. 그러면 결과적으로 얘가 이렇게 되고 결과적으로 얘도 이런 형태가 되고 이 이미지가 11페이스에 있는 거죠. 알겠습니까? 알겠어요? 그 다음에 다른 Latinx라는 방법이 있는데
이것은 지금 안되고 그래서 중간고사는 여기 Histogram 지점까지 해서 처음부터 시험 보도록 하고 그 다음에 우리 중간고사 한 주 좀 빨리 보니까 중간고사 이후에 한 주 정도는 영상 처리 좀 더 하고 그 다음에 딥러닝 설명하도록 할게요. 알겠죠? 그럼 범위는 처음부터 Histogram 지점까지 양치에 찍어볼게요. 그래서 얘기한 대로 이제 3시분 편집이죠?