본문 바로가기

전체 글

(171)
리눅스 파일 다루기 - cat, more, less, tail,cp,mv, rm 몇몇 명령어들은 제가 다른 포스팅에서 다룬 적이 있는데요. 리눅스의 명령어들은 옵션에 따라서, 그리고 인자들의 상태에 따라서(존재유무,갯수) 결과가 전혀 다른데 이에 대한 설명이 부실한 면이 있었습니다. 이 때문에 다시 이 포스팅에 조금 더 디테일하게 정리를 했습니다. Cat - 파일 내용을 출력하는 명령어 - 간단한 내용의 파일을 출력할 때 좋다. 리눅스에 원래 있는 파일에 cat 명령을 사용해보겠습니다. /etc/hosts 파일에 간단한 데이터가 저장된 것을 확인할 수 있습니다. -n 옵션의 경우 행 번호가 같이 출력되도록 해줍니다. 파일에 행 번호는 없습니다. -n 옵션을 통해 저희 눈에 보기 편하게 보여줍니다. More -파일 내용을 화면 단위로 출력한다. -cat 명령은 연속적으로 출력하기에 간..
리눅스 우분투 디렉터리와 파일 사용하기 (1) 리눅스는 기본적으로 유닉스 계열의 운영체제이므로 유닉스의 많은 부분을 그대로 이어받아 유지하고 있습니다. 유닉스에서는 시스템과 관련된 정보, 하드웨어 장치 등등 모두 파일로 관리합니다. 리눅스도 유닉스처럼 시스템 관련 정보와 장치를 관리하기 위해 '파일'을 사용합니다. 이 때, 파일의 효과적 관리를 위해 '디렉터리'를 사용하며 이는 계층 구조를 가집니다. 원래 유닉스에서는 '디렉터리'라는 용어를 사용했으나 윈도에서 '폴더'라는 용어가 사용됩니다. 윈도우가 도스에서 gui 로 변환하면서 시각적이미지가 느껴지는 폴더(=서류철)의 용어 개념을 도입하였습니다. 이름은 다르지만 용도는 같습니다. 1.1 파일의 종류 일반 파일 - 데이터를 저장하는 데 주로 사용됩니다. 각종 텍스트 파일, 실행 파일, 이미지 파일 ..
리눅스 우분투 기초명령어 4. 명령행 편집, man, passwd, 터미널 종료 1.1 명령행 편집 방법 - 단축키 설명 단어 지우기 - 명령 행에서 단어를 지울 때는 ctrl + w 키를 사용한다. 이 때, 단어는 공백으로 구분한다. 행 지우기 - 리눅스의 명령 행에서 문장을 지울 때는 ctrl + u 키를 사용한다. 예를 들어 아래와 같은 명령어가 있다고 하자. $ linux ubuntu | | 키는 커서를 의미합니다. 이 때, ctrl + w 키를 사용하면 $ linux 로 ubuntu 글자가 지워진다. 커서 왼쪽의 어절이 사라지는 것입니다. 커서를 기준으로 (모니터를 보는 우리 시야 관점에서) 좌측의 어절을 지워줍니다. 다시 $ linux ubuntu | 상태에서 ctrl + u 키를 입력하면 전체 행을 지우게 됩니다. 1.2 man 명령 리눅스가 제공하는 각종 명령의 사용법..
리눅스 conky 설치 (2020.08.15) 최근에 데탑을 맞췄는데요. 우분투 리눅스를 설치하면서 필요한 셋업을 필요할 때마다 하고 있습니다. 오늘은 그 중 하나인 'conky'라고 하는 패키지를 설치해보겠습니다. Conky? Conky is a free software desktop system monitor for the X Window System. It is available for Linux, FreeBSD, and OpenBSD.[3] Conky is highly configurable[4][5][6] and is able to monitor many system variables including the status of the CPU, memory, swap space, disk storage, temperatures, process..
opencv 입문하기 7-2편 HSV, 특정 색상 추출(inRange) 1. HSV HSV 색 공간 또는 HSV 모델은 색을 표현하는 하나의 방법이자, 그 방법에 따라 색을 배치하는 방식이다. 색상(Hue), 채도(Saturation), 명도(Value)의 좌표를 써서 특정한 색을 지정한다. 비슷한 것으로 HSL(Lightness), HSI(Intensity) 등이 있다. RGB가 색을 빨강, 초록, 파랑의 조합으로 표현한다면, HSV는 우리가 보는 그대로의 색을 Hue 채널로 나타낸다. 그리고 그 색의 진하고 연한 정도를 Saturation 채널로 표현하고, 밝기를 Value로 결정한다. RGB 색 공간보다는 좀 더 우리들이 색을 판단하는 과정과 유사한 것이 HSV 색 공간이다. 예를 들어 노란색을 표현하고자 하면, RGB 색 공간은 빨강과 초록의 조합으로 노랑을 표현해야..
opencv 입문하기 7-1편 histogram stretching, equalization 1. 히스토그램 히스토그램은 값 또는 구간별 관측값의 갯수를 표현한 것입니다. 이미지 영역에서 히스토그램은 '이미지를 구성하는 픽셀값 분포'에 대한 그래프 입니다. X축은 픽셀값이고 범위는 0~255, Y축은 이미지에서 해당 픽셀값을 가진 픽셀의 개수입니다. 갯수로 표현시 영상의 크기에 따라 빈도 경향이 달라지므로 전체 픽셀수로 나눈 정규화된 히스토그램Normalized histogram) 을 사용합니다. 흑백 레나 이미지로 간단하게 히스토그램을 그려보면, 처럼 나옵니다. """Histogram""" import os import cv2 import matplotlib.pyplot as plt src = cv2.imread( 'lenna_2.jpg', cv2.IMREAD_GRAYSCALE) hist = ..
opencv 입문하기 6편 트랙바, 산술 연산 1. 트랙바 cv2.createTrackbar(trackbarName, windowName, value, count, onChange) trackbarName 트랙바 이름 windowName 트랙바를 포함하는 윈도우 이름 value 트랙바 초기값 count 트랙바 최댓값(defalut = 0) onChange 트랙바 값이 변경될떄마다 호출할 콜백 함수 이름 콜백 함수는 아래처럼 사용됨 onChange(pose) * 트랙바를 이용한 grayscale 조절 * import cv2 import numpy as np def level_change(pos): value = pos * 8 if value >= 255: value = 255 img[:] = value cv2.imshow('img', img) img ..
opencv 입문하기 5편 마우스 이벤트(2) 지난 번에 하던 마우스 이벤트의 예제를 조금 더 해보겠습니다. 1) 마우스가 지나간 길을 따라 선을 그려주는 프로그램 선이 뭔가 투박해서 보기가 안 좋습니다. 일단 위 코드는 아래 와같습니다. # 마우스가 지나는 길을 따라 선을 그려주는 프로그램 # 이 때, 선을 그리다 보면 뭔가 끊어지는 듯한 느낌이 있다는 이슈가 생김. import cv2 import numpy as np def mouse_fn(event, x, y, flags, param): global img if event == cv2.EVENT_LBUTTONDOWN: print('EVENT_LBUTTONDOWN: %d, %d' % (x, y)) elif event == cv2.EVENT_LBUTTONUP: print('EVENT_LBUTTON..
opencv 입문하기 4편 키보드, 마우스 이벤트(1) 이번 시간에는 opencv 에서의 키보드,마우스 이벤트에 다뤄 보겠습니다. 1. 키보드 이벤트 ● 키보드 입력 대기 cv2.waitKey(delay=None) -> retval delau 매개변수에서 ms(밀리세컨즈) 단위 시간은 (1초=1000)입니다. delay
opencv 입문하기 3편 영상생성,추출, 그리기 함수 이번에는 앞시간에 했던 것을 응용해서 간단한 영상을 생성해보겠습니다. opencv 의 영상 타입들은 모두 numpy.ndarray 라고 했습니다. 그리고 dtype 이 uint8 이므로 2^8 이니깐 그 범위는 0~255 라고 설명한 바 있습니다. 1) 영상 생성 그러면 이를 토대로 numpy array를 그리고 2차원, 3차원에 범위 안의 값들을 넣으면 영상(=이미지)을 생성할 수 있습니다. 5개의 이미지를 그려봤습니다. 아래 이미지 중에서 2차원과 3차원 구별이 가시나요? 자, 위 영상들을 생성하는 코드들입니다. import numpy as np import cv2 img1 = np.empty((160, 280), dtype=np.uint8) # grayscale img2 = np.zeros((160..
how to install python package | library permanently in Colab? 코랩에 패키지를 설치하는 것은 매번 해줘야 되서 너무나 번거롭습니다. 이를 계속 유지해줄 수는 없을까요? Installing the package on the co-lab is a hassle because it has to be done every time. Can we keep this up? 이번 포스팅에서는 영구적으로 코랩에서 파이썬 패키지를 설치하는 방법을 다뤄 보겠습니다. 우선 본인의 구글 드라이브에 폴더를 하나 만들어주세요. In this posting, we will discuss permanently installing the Python package in colab. First, please create a folder on your Google drive. 코랩 노트북을 한 번이라도..
opencv 입문하기 2편 - 이미지 객체 속성 , 픽셀값 변경 이번 시간에는 opencv에서 이미지를 부를 때의 객체 속성과 픽셀 접근에 대해 코딩 및 설명 해보겠습니다. opencv 에서 이미지를 부르면 보통 BGR 순서로 부릅니다. 저희가 보는 컬러 이미지는 보통 RGB 순서입니다. 그러므로 순서의 변환이 필요합니다. 또한, opnecv 는 영상 데이터를 numpy.ndarray 로 표현합니다. numpy.ndarray 의 특징을 opencv 의 영상 관점에서 보면 ndim: 차원 shape - (h,w) : grayscale 영상 - 흑백 영상 - (h,w, 3) : 컬러 영상 size: 전체 픽셀 갯수 dtype: 원소의 데이터 타입 uint8 으로 이해하면 됩니다. 우선, 예제 영상 결과를 보고나서 코드로 설명하겠습니다. 제가 최초에 가져온 이미지는 위 사..