일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- system hacking
- Stream
- C++
- bloc
- Computer Architecture
- MATLAB
- Widget
- BAEKJOON
- FastAPI
- fastapi를 사용한 파이썬 웹 개발
- study book
- BFS
- ARM
- Image Processing
- rao
- Dreamhack
- 파이토치 트랜스포머를 활용한 자연어 처리와 컴퓨터비전 심층학습
- ML
- Kaggle
- pytorch
- DART
- MDP
- Flutter
- llm을 활용 단어장 앱 개발일지
- 영상처리
- Algorithm
- 백준
- BOF
- Got
- PCA
- Today
- Total
목록Computer Science (35)
Bull

개념 히스토그램 평활화는 이미지의 히스토그램에서 너무 치우쳐진 부분을 평활하게 만들어 주는 기법이다. 즉, 위의 그림과 같이 빈도 수가 높은 부분은 낮게, 낮은 부분은 높게 하여 동등하게 만들어준다. 방법은 다 알고나면 간단해 보일지 모르겠지만 나름 고민을 많이 했던 주제였다. 과정 ① 우선 흑백으로 만든 후 사진의 gray level의 개수를 담을 배열을 잡아준다. 난 교재에서 level이 0~7이 길래 255크기를 log_scale로 나누는 건가.. 아니면 그냥 임의의 숫자로 나누는 건가 싶어서 몇 시간을 고민했는데, 임의로 나눠도 되고, 아무렇게나 기준을 잡아 단계를 나누면된다. 빽빽한 히스토그램이 보고싶으면 0~255로 배열을 만들면 된다. [0,1,2,3,4,....255] ② 배열에 담긴 숫자..

개념 bit slicing은 1차원으로 이루어진 흑백 사진에서 bit단위로 사진을 추출해 총 8개의 단위로 쪼개서 나눈다. 예를들어 pixel의 값이 01010000 이라면 이 pixel 원소의 위치에서 각각 5,7번째를 원소에 저장한다. bitSlices라는 3차원 배열이 있다면, bitSlices(:,:,7) 슬라이스에 해당 위치의 픽셀 값은 = 64로 저장, bitSlices(:,:,5) 슬라이스에 해당 위치의 픽셀 값은 1 * 2^(5-1) = 16로 저장 된다. 이 기법은 중요하지 않은 데이터를 압축하거나, 미디어같이 영상정보를 통신으로 처리할 때는 중요한 정보를 우선적으로 보내고 나머지 중요하지 않은 정보는 천천히 보내서 데이터를 유용하게 관리하기 위해 사용된다. 또한, 보안 분야에서는 특정 ..

개념 아래의 사진과 같이 특정 구간(A-B)에서의 강도나 대비를 다른 함수를 통해 바꿔주는 방법을 말한다. 함수는 고등학교때 배운 범위별 케이스로 나누는 함수를 생각하면 된다. 종류 Contrast Stretching 이 기법은 명암을 좀더 대비시켜 준다. Intensity Level Slicing 이 기법은 특정 강도(밝기)를 강조시켜준다. 코드 코드는 intensify level slicing을 예제로 해보겠다. 함수는 intensify level slicing 사진의 1번째 도표와 비슷하게 만들어 주었다. img = imread("dog.jpg"); img = uint8(mean(img,3)); A=150; B=200; [m,n] = size(img); for i=1:m for j=1:n if im..

개념 우선, 위키백과의 사전 정의를 보면 컴퓨터 분야에서 쓰이는 Base란 6비트 이진 데이터(예를 들어 실행 파일이나, ZIP 파일 등)를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념이다. 원래 Base 64를 글자 그대로 번역하여 보면 64진법이란 뜻이다. 특별히 64진법이 컴퓨터에서 흥미로운 것은, 64가 2의 제곱수(64 = 26)이며, 2의 제곱수들에 기반한 진법들 중에서 화면에 표시되는 ASCII 문자들을 써서 표현할 수 있는 가장 큰 진법이기 때문이다. 즉, 다음 제곱수인 128진법에는 128개의 기호가 필요한데 화면에 표시되는 ASCII 문자들은 128개가 되지 않는다. 그런 까닭에 이 인코딩은 전자 메일을 통..

개념 Digital Image Processing (Rafael C . Gonzalez , Richard E. Woods) 책에서 제시한 바에 따르면 명도 변환을 위해 기존의 픽셀 값은 다음과 같은 공식을 적용할 수 있다. $${s=cr^γ}$$ 여기서 c와 γ는 내가 정해줄 상수이다. $c$는 상수이고 $γ$값을 조절할 때 input-output 관계는 위 사진같은 그래프를 따른다. $γ$ = 1을 기준으로, $γ$ > 1은 밝아지고 $γ$ < 1은 어두워진다. 또한, $γ$값이 너무 커 범위 255를 넘어버리면 uint8()로 인해 최대 255값을 나타낸다. 어떤 $c$와 $γ$값이 최적화된 값인지는 잘 모르겠지만 보통 $c=1$ 상태에서 $γ$를 조절해주는 것이 일반적인 것으로 보인다. 사진 생성형..

negative image를 만들 것이다. 이 방법은 정말 쉽다. 미리 말하자면 1차원 흑백사진의 총 길이 255에서 값을 빼주면된다. 준비 다음과 같이 흑백이된 사진을 준비한다. 흑백 만들기 스크립트 gray_awakening_frieren.m img = imread("awakening_frieren.jpg"); grayscale_img = uint8(mean(img,3)); imshow(grayscale_img) Negative Image 위의 흑백 만들기 스크립트에서 한줄이 추가 됐기 때문에 바로 스크립트로 보일 것이다. negative_awakening_frieren.m img = imread("awakening_frieren.jpg"); grayscale_img = uint8(mean(img,3..

오늘 수업시간에 배운 MATLAB으로 컬러사진을 흑백으로 만들기를 해볼 것이다. 사진: 변경 전 - 변경 후 설명 업로드 우선 작업공간의 디렉토리에 아무 사진을 올려준다. imread("파일명") >> img = imread("dog.jpg"); 함수명을 보면 알 수 있듯이 이미지를 배열에 담아 변수로 저장한다. "값" 필드를 보면 1000x750x3인 걸 알 수 있는데 여기서 3은 RGB 채널의 수이다. 그리고 RGB는 (0~255, 0~255, 0~255)로 표현할 수 있기 때문에 uint8(unsigned int 8bit)로 표현이 된다. (즉 양수 8bit) 따라서 영상(이미지)이 bit(pixel?)세계에서는 3차원으로 간주할 수 있는 것이다. 흑백 만들기 흑백을 만들기 위해 3채널 구조에 대해..

pwntools란? 드림핵에서 시스템해킹 트랙을 하기에 필수적인 파이썬 툴이다. 드림핵 뿐만 아니라 일반적으로 포너블에서 쉘을 따기위해 필요한 도구이다. 함수정리 remote() r = remote("localhost", 8888) 원격주소에 nc 명령어 역할을 해준다. process() p = process("./실행파일") 실행파일을 연결해준다. recv() r = remote("localhost", 8888) m = r.recv() m = r.recv(10) # 10byte 만큼 받아온다. receive의 단축말이다. 연결된 대상에서 데이터를 받는다. recvline() r = remote("localhost", 8888) m = r.recvline() 연결된 대상에서 \n 까지 받는다. 즉 한 줄..
역할 ZF가 1이면 점프한다.

궁금하게 된 경로 abex crackme3 문제에서 필요한 파일 문서여서 어떤 역할을 하는 확장자인지 궁금하게 되었다. 정보는 크게 없기 때문에 그대로 긁어왔다. 목적 큰 목적없이 일반적으로 Binary Data, 일개 개발자가 만든 소프트웨어 확장자로 보인다. (정말 아무의미 없이, 나같은 사람도 만드는 확장자 같다.) 그래도 만든 목적이 있을텐데 그 이유는 나도 모르겠다? 나중에 알게 되겠지 히히 존재의 이유 abex문제에서 이 확장자를 굳이 풀이과정에 넣은 이유는 컴퓨터 세상에는 여러 의미없거나 혹은 어떤 목적을 위한 확장자가 존재한다는 걸 보여주기 위해 넣은 것이 아닐까? l2c확장자가 무엇인지 몰라서 검색해보다가 https://www.solvusoft.com/ko/file-extensions/l..