728x90

분류 전체보기 430

2021년을 되돌아보며 세운 2022년 목표

12월 30일부터 집 인터넷에 문제가 생겼다. 아직도 해결된 건 아니지만 아예 사용하지 못하는 건 아니기 때문에 인터넷이 될 때마다 틈틈히 적고 있다. 그래서 제때 투고하지는 못하겠지만 2021년에 대한 회고와 2022년에 목표에 대해 얘기해보고자 한다. 나의 2021년 1. 지난 2021년 목표 달성여부 확인 2021년 목표에 대한 내용이 꽤 길기 때문에 표 자체를 가져 오는 건 생략하고자 한다. 크게 크게 얘기하자면 2021년 하반기에 예상치 못하게 일이 급격하게 늘어나면서 제대로 마무리를 짓지 못한 것들이 많았다. 특히 자격증관련된 것들은 거의 공부하지 못했다. 그리고 개인 프로젝트는 아예 시작도 못 했다. 올해는 적어도 2개의 자격증은 취득하도록 그리고 개인 프로젝트를 시작이라도 하도록 노력해야겠..

[python/OpenCV] cv2.Canny():Canny방법을 이용하여 물체의 외곽선(엣지) 추출하기

외곽선(엣지)란 물체간 혹은 배경과의 경계를 일컫는 것으로, 외곽선(엣지) 검출이란 일반적으로 이미지 안의 화소치의 변화, 휘도의 변화가 커다란 부분을 검출하여 엣지를 추출하는 이미지 처리를 의미한다. cv2.Canny()이란 OpenCV에 제공되어 있는 엣지 검출 함수로, 이미지의 엣지만을 되돌려준다. 다만, 적절히 사용하기 위해서는 1개의 파라미터를 조정해야할 필요가 있다. 기본적인 문법은 다음과 같다. cv2.Canny(gray_img, threshold1, threshold2) 간단히는 threshold1와 threshold2 어느쪽도 엣지 여부의 판단하는 임계값을 나타내고 있다. 클수록 엣지가 검출되기 어렵고, 작을 수록 엣지가 검출되기 쉽다(그 값이 크면, 보다 커다란 휘도 변화가 나타날 때가..

IT/언어 2022.01.04

[python/Numpy] 분산을 계산하는 var()의 사용법과 주의법

Numpy에는 배열 요소의 분산 계산해주는 np.var()가 준비되어 있다. 이 포스팅에서는 이 함수의 사용법과 주의법에 대해 설명하고자 한다. 또한, 동일한 기능을 하는 ndarray.var도 있는데 옵션이 완전히 동일하므로, np.var에 대해서 설명하도록 하겠다. 더욱이, np.nanvar이라는 함수가 있는데, 보통의 np.var의 경우 대상이 되는 배열에 결손값 nan이 포함되어 있는 경우, nan이 반환된다. 그러나 np.nanvar으로는 결손값 nan을 무시하고 그외의 배열 요소의 분산을 계산한다. 이 차이는 기억해두면 좋을 것이다. 기본 서식 np.var(a, axis=None, dtype=None, out=None, ddof=0, keepdims=) 인수 데이터 형 해설 a array_li..

IT/언어 2021.12.24

[git] git의 여러가지 취소 방법

git에서는 "취소"라는 말이 상황에 따라 조금씩 다르다. 이 포스팅에서는 변경을 "취소"하고 싶은 상황 시나리오를 제시하고 그에 따른 적절한 git 사용 방법을 작성하고자한다. "퍼블릭"한 변경을 취소 - 시나리오 git push를 실행해서 GitHub에 변경사항을 보낸 후, 하나의 커밋에 문제가 있는 것을 발견했다. 당신은 이 커밋을 취소하고 싶어졌다. - 사용할 커맨드 git rever - 동작 설명 git revert는 전달된 SHA와 반대의 (원래로 되돌리는) 새로운 커밋을 만든다. 이전 커밋에서 "한 것"은 새로운 커밋에서 "한 것과 반대"가 된다. 즉 이전 커밋에서 삭제된 것은 새로운 커멧에 추가되고, 이전에 커밋에서 추가된 것은 새로운 커밋에서는 삭제된다. 히스토리를 고쳐 쓰지 않는다는 점..

IT/기초 지식 2021.12.19

[python] 결정계수 R2와 자유도 조정 결정 계수 R*2

다중회귀 분석의 결과 지표 중 하나는 "결정계수"이다. 1에 가까울수록 좋은 결과가된다. 그러나, 결정계수만으로는 결과를 잘못 이해할 가능성이 있기 때문에, 결정계수에 대해 잘 이해해둬야할 필요가 있다. 먼저 결정계수에 대해 가볍게 살펴보고 가자. 결정계수는 회귀 분석에 의해 도출된 목적 변수의 예측 값이, 실제 목적 변수의 값과 어느정도 일지하는가를 표시하는 지표이다. 회귀분석에는 y=ax+b이라는 식으로 표시할 수 있는 단일 회귀 분석과 설명변수가 여러 개 있는 다중 회귀 분석이 있다. (이번 포스팅에서는 결정계수 계산식에 대해서는 다루지 않고, 자유도 조정 결정 계수에 대한 것을 주로 다룰 것이다) 단일 회귀분석에 있어서 결정계수 단일 회귀 분석에서는 y=ax+b의 형식으로 목적 변수(y)의 값을 ..

IT/AI\ML 2021.11.28

[python/Numpy] Numpy 요소 바꾸는 함수

numpy.where() numpy.where()은 조건문을 만족하는 요소와 만족하지 않은 요소를 각각 지정한 숫자나 불 값으로 바꿔주는 함수이다. 기본 구문은 다음과 같다. numpy.where(condition, x, y) condition에는 배열을 포함한 조건문을 넣고, condition이 참일 때는 x로 값을 바꾸고, 거짓일 경우는 y로 값을 치환한다. numpy.where()을 사용하여 배열의 짝수 요소를 0, 홀수 요소를 1로 치환해보자. # NUMPY_WHERE # In[1] import numpy as np # [[1 2 3] # [4 5 6] # [7 8 9]] a = np.arange(1, 10).reshape(3, 3) # 짝수는 0, 홀수는 1으로 치환한다. b = np.where..

IT/언어 2021.11.28

[python] 문자열에서 특정(일부) 문자만 삭제하는 방법들

이번 포스팅에서는 python에서 불필요한 물자열을 삭제하는 네 가지 방법에 대해 알아보고자 한다. - strip 메소드 : 양 끝의 불필요한 문자를 삭제한다. - replace 메소드 : 지정 문자열을 치환하여 삭제한다. - translate 메소드 : 여러 개로 지정한 문자열을 한 번에 삭제한다. - re.sub 함수 : 복잡한 패턴의 문자열을 치환하여 삭제한다. strip메소드는 주의점이 있으므로, 제대로 확인해 둘 필요가 있다. 또한 이 중에서 translate 메소드가 제일 처리 속도가 빠르다. 이제 본격적으로 각각의 특징에 대해 알아보자. strip 메소드로 문자열을 삭제하는 방법 strip 메소드에는 세 가지가 있다. - strip : 양 끝단의 불필요한 문자열을 삭제 - lstrip : 왼..

IT/언어 2021.11.17

[python/OpenCV] OpenCV를 이용한 픽셀 논리연산 - AND, OR, XOR, NOT

python 이미지 처리 라이브러리인 OpenCV를 이용해 2개의 이미지를 합성하거나 겹치는 방법으로 bitwise를 사용할 수 있다. 이번 포스팅에서 간단히 논리연산 AND, OR, XOR, NOT에 대해 2개의 이미지를 사용해 각각 어떤 원리인지 간단하게 살펴보고자한다. 2개의 이미지를 준비 다음의 코드로 두 가지 이미지를 읽어들였다. import cv2 import matplotlib.pyplot as plt %matplotlib inline img1 = cv2.imread('images/img1.jpg') img2 = cv2.imread('images/img2.jpg') 각각의 이미지를 살펴보면 다음과 같다. plt.imshow(img1) plt.imshow(img2) AND 연산 - bitwis..

IT/언어 2021.11.15

[python/OpenCV] OpenCV를 이용해 이미지의 특정 색 추출 (RGB vs HSV)

OpenCV를 사용해서 특정 범위의 색을 추출하는 방법에 대해서 알아보고자 한다. 예를 들어 (0, 0, 100) ~ (100, 100, 225)와 같이 색 범위를 전달해, 그 내용을 바탕으로 범위 내의 화소만을 추출하고자 한다. 색의 추출의 경우 이미지의 RGB를 사용하는 방법도 있지만, RGB를 HSV로 변환하여 HSV에서 색을 추출하는 방법도 있다. 이번 포스팅에서 이 두 가지 방법에 대해 알아보고 비교해보고자 한다. HSV : Hue, Saturation, Value HSV이란 색상(Hue), 채도(Saturation), 명도(Value) 세 가지 성분을 이용해 색을 표현하는 방법으로, RGB와 같이 빛의 3원색(빨강, 초록, 파랑)과는 다른 세 가지 축으로 색을 표현한다. 1) 색상(Hue) :..

IT/언어 2021.11.15

[Linux] sed 커맨드 상황별 사용법

쉘에서 데이터를 가공할 때 sed를 자주 사용하게 되는데, 상황에 따른 사용예를 정리한 포스팅이다. sed 커맨드는 Linux/Unix/BSD/OSX의 경우 기본적으로 설치되어 있으므로, sed 커맨드를 사용하기 위해 따로 설치할 필요는 없다. 이 포스팅의 경우 Redhat계 Linux메인이므로 경우에 따라 작성법이 조금 다를 수 있다는 점을 유의하길 바란다. 그럼 바로 본론에 들어가도록 하겠다. '#'로 시작하는 코멘트행을 삭제할 때 sed '/^#/d' source.txt 빈 행을 삭제할 때 sed '/^#/d' source.txt 행의 맨 앞이 #인 행과 빈 행을 삭제 cat source.txt | grep -v '^#' | sed '/^$/d' file1.txt의 15행부터 26행까지를 삭제한 후..

IT/기초 지식 2021.11.03
728x90