이번에는 디지털 영상처리 교재의 문제를 풀어보자 1) Bit Plane을 이용한 영상 워터마킹 • 카메라맨 영상을 비트 평면으로 표현하고 LSB 평면을 이름 영상으로 교체하라. • LSB 평면을 교체한 영상을 다시 8비트 그레이스케일 영상으로 저장하여 디스플레이 하라. 우선 밑과 같이 카메라맨 영상을 비트 평면으로 표현하였다. LSB 평면의 경우 내 이름 영상으로 추가하였다. 'name.png' 파일의 크기를 resize로 맞춘 후 LSB 평면 생성한 이름 영상이다. 이제 LSB의 내 이름과 비트 평면을 합성해보자. 아마 보기에는 카메라맨 영상으로만 확인되지만, 안에는 내 이름이 숨겨져 있을 것이다. 2) 카메라맨(256*256) 영상을 각각 128*128과 64*64 크기의 유효 해상도를 가지는 영상으..
매트랩을 통한 기본 영상(Image) 처리 방법을 알아보도록 하자. 1) 이미지 확장자명 바꾸기 기본적으로 매트랩은 파일 확장자명 변환이 자유롭다. 왼쪽 사진과 같이 파일이 저장된 것을 확인할 수 있다. 영상 출력 결과: cameraman.tif cameraman.jpg 블로그에서 tif 형식 지원을 안하나 보다... cameraman.png cameraman.bmp 2) 이진 영상 변환 im2bw라는 함수를 이용하여 간단하게 이진화를 할 수 있다. 앞서 진행한 변수 'v'에 “cameraman.tif” 파일이 저장되어 있다. 그 파일을 0.5 * 255 = 127.5를 임계값 설정 후 만들어진 이전 영상을 BW에 저장하였다. 영상 출력 결과: 3) 본인 사진을 인덱스 컬러 영상으로 변환 우선 ‘a’에 ..
매트랩을 통해서 디지털 영상처리를 진행하기 전 매트랩 기본적인 활용법에 대해서 공부해봤다. 설명은 주석을 다 달아놨으니 한 번 씩 훑어보면 도움이 되지않을까~ 1) 스칼라, 벡터 생성 2) 변수 초기화 및 벡터 출력 3) 행렬 크기 표시 4) 스칼라, 벡터 연산(pointwise) 5) 벡터 연산 함수 6) 벡터&벡터 연산 7) conv(a,b) 함수 이 부분은 a 벡터에 대한 b 벡터가 필터 작용을 한다. 8) 파일 저장 및 불러오기, 변수 초기화 9) for, find 함수 10) 사용자 정의 함수 제작 및 호출 11) 사진 좌우 대칭 함수 1. ‘convert_hand.m’ 사용자 정의 함수 만들기 2. ‘convert_hand.m’ 사용자 정의 함수 실행 3. ‘convert_hand.m’ 사용자..
1. led 응용프로그램을 수정하여 0,2,4,6과 1,3,5,7이 번갈아 점멸하는 프로그램 제작 타겟시스템의 장치들을 이용하기 위해서는 드라이버를 작성해야 한다. 크게 알아본 드라이버 작성법은 4가지가 있었는데, 여기선 타겟시스템의 'dev' 폴더 안에 드라이버가 정리되어 있다. 그래서 가져다가 쓰면 된다. - 'led.c' 코드파일 작성 dev, i, data : 장치와 반복문 변수 선언, data는 led 출력을 위한 값 #define led "/dev/led" : dev 폴더의 led라는 파일을 'led' 라는 이름으로 사용하겠다고 선언 dev = open(led, O_RDWR); : dev라는 변수에 led 장치를 읽고 쓸 수 있게 불러오는 것 (장치 안의 /dev/led 폴더, 파일 != 작성..
컴파일러 gcc 4.4버전 사용에 대해서 추가로 포스팅해보겠습니다. 타겟시스템 자체도 옛날거라서 컴파일러 문제가 좀 있습니다. 리눅스 환경(Ubuntu, CentOS 등)이 발전하면서 컴파일러인 GCC도 옛날 버전 패키지가 존재하지 않는다. (2022-05-14 기준 8~10 버전까지 존재) 그 때문에 패키지 주소를 추가하여 다운로드가 가능하도록 해야 한다. 우분투 환경에서 gcc 패키지 경로를 설정할 수 있고, 원하는 버전의 경로를 확인하고 입력해야 한다. 본인은 4.4버전 설치를 위해 밑의 명령어를 입력하였다. ‘sudo add-apt-repository ppa:ubuntu-toolchain-r/test’ 그 후 ‘sudo apt-get update’로 업데이트 진행 ‘sudo dpkg -l |gre..
0. 윈도우 리눅스 공유폴더 설정 (초반부터 진행해온 저와 같은 환경에서 리눅스를 사용하고 있다면 윈도우-리눅스 공유 관련 어려운 방법보다 간단한 방법이 있어서 소개합니다. 사실 이것저것 시도해봤는데 이 방법만 제대로 되서 적어봅니다.) 1. 윈도우에서 공유하고 싶은 폴더를 생성 (여기선 ‘linuxshare’ 라고 이름 붙였다.) 2. 사용하고 있는 VirtualBox 환경에서 ‘장치-공유 폴더-공유 폴더 설정...’을 들어간다. 3. 그 후 만들어 놓은 폴더 경로를 설정하고, 이름을 확인한다. 자동 마운트와 항상 사용하기 체크 후 마운트 지점을 Z로 지정한다. 4. 다음 루트 계정으로 로그인 한 후, 공유하고 싶은 지점(폴더)을 들어간다. ‘mount –t vboxsf [윈도우 공유 폴더 명] [리눅..
h-4412 장치에서 보통 부팅 안되는 경우는 usb 케이블 연결이 제대로 안 되었거나, 연결은 했는데 드라이버가 설치되지 않았거나, sd card에 제대로 부트로더가 설치되지 않는 경우이다. 내가 할 때는 USB는 딱히 문제 없었어서 부트로더 설치, sd 퓨징만 설명하고 건너갈려고 한다. USB는 개발 CD Util폴더 참고하고, OTG cable의 경우 드라이버 설치 후 시스템 변수 경로 설정을 진행하면 된다. (platform-tools 경로도 포함) 교재 따라가면 딱히 어려운 것은 없다. 근데 이제 본인은 Sd카드 날려먹고 난리도 아니었기 때문에 그것에 대해 진행해보려 한다. 뭐 건드리지만 않으면 사실 그냥 될거다... ㉠ 우선 부트로더가 설치되었는지 확인하기 위해 지금까지 진행했던 리눅스 환경에..
1. 파일시스템 개요 1) 임베디드 리눅스 파일시스템의 사용 목적과 기능에 대해 파일 시스템이란 운영체제가 물리적 저장 장치 파티션 속 정보를 저장, 관리하기위한 방법 또는 체계를 뜻한다. 임베디드 시스템은 일반적인 리눅스와는 다르게 하드디스크(시스템 운영을 위한 실행 파일은 플래시, ROM과 일정 영역 RAM에서 실행)나 별도 모니터가 필요 없고 특정 목적(임베디드 시스템과의 호환이 가능한 파일시스템, 보안, 성능 등)을 위해 사용된다. 임베디드 시스템의 파일시스템의 주요 특징으로는 제한된 자원을 사용하여 효율성을 추구하고, 열약한 환경에서도 안정적으로 가동이 가능하다. 또한 열약한 환경에서 만약 전원을 차단하거나 문제가 발생 시 자동으로 복구를 진행하거나 데이터 손실 없이 재가동이 된다. 그리고 파일..