반응형

 

1. VSCode를 실행하여 Python을 설치

 

2. 새로운 파일 확장명 .py 로 만들기.

 

 

반응형

 

3. 해당 파일을 VScode로 드레그해서 열고, 코드 작성.

 

4. 마우스 우클릭 후 - Python 실행 - 터미널에서 Python 파일 실행

 

아래 터미널이 생성되어 바로 실행을 확인 할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
반응형

파이썬 코드 작성시 유용한 파이참. 개발환경 구축은 아래를 참고.

https://ansan-survivor.tistory.com/134

 

Pycharm(파이참)을 이용하여 Python 개발환경 구축하기

파이참은 파이썬 개발을 편리하게 하는 많은 기능을 제공하는 툴이다. https://www.jetbrains.com/pycharm/download/#section=windows Download PyCharm: Python IDE for Professional Developers by JetBrains Download the latest version of P

ansan-survivor.tistory.com

 

설치후 처음 상태. (죄다 영어다)

구축 후, 언어설정을 한글로 하면 편리하다.

방법은 아래와 같다.

 

1. File - Settings

 

 

2. Plugins - 검색창에 "Korean" 입력 - Install 설치

 

 

3. 설치가 완료되면 Restart IDE가 뜬다. 이를 클릭

반응형

 

4. Restart으로 툴을 껐다가 켠다.

 

 

결과

 

반응형
반응형

파이썬을 설치하여 실행하는데 가장 기본적인 pip 가 동작하지 않을 때, 환경변수가 제대로 입력되지 않아서이다.

 

1. 시작 - 검색 "환경" (또는 영문버전 "env")  - 시스템 환경변수 편집

2. 환경변수 클릭

반응형

3. 하단의 시스템환경변수의 Path를 더블클릭하여 편집모드

4. Python.exe 실행 경로, Scripts 경로를 넣어주면 된다.

 

그리고나서 열었던 cmd 창은 모두 닫고, 다시 cmd를 실행시키면 이제 pip 명령을 듣는다.

 

반응형
반응형

파이썬은 이게 될까? 하는 것들이 왠만하면 다 된다.

일단 시도해보고 되면 진행 안되면(예외가 발생하면) 이렇게 해봐라 ~ 이런 시도가 가능하다.

 

그 구문을 try, except 구문이 있다.

아래 예를 보면 된다. 유저에게 분자값과 분모값을 입력 받고 나눗셈을 하는 코드이다.

# 예외처리

try:
    number1 = eval(input("분자입력: "))
    number2 = eval(input("분모입력: "))
    division = number1 / number2
    print("계산된 값은: %.2f 입니다." %division)

except ZeroDivisionError:
    print("0으로 나누면 안됨")

else:
    print("정상 출력")

finally:
    print("마지막을 출력")

값을 제대로 입력했을 때
분모를 0으로 나누었을 때

특정 구문에 에러가 발생할 것으로 예상되는 쪽에 except 문을 쓰고, 해당 에러 코드를 쓰면 예외가 발생했을 때 우회가 가능하다.

 

파이썬에서는 나눗셈에 0으로 나누면 "ZeroDivisionError" 가 발생한다.

이를 except문에 위 발생한 에러코드를 쓰고, 발생했을 때 우회할 코드를 입력하면, Except 문에 있는 코드가 실행된다.

만약 에러를 무시하고 진행하고픈 경우 사용!

 

반응형
반응형

파이썬 튜플(tuple)을 파악하기 위한 샘플 코드이다.

파이썬에서 주로 튜플과 비교하는 것은 리스트인데, 리스트는 내부의 값을 다이나믹하게 변경 수정 삭제 등등이 가능하다.

반면에 튜플 처음 선언한 값을 유지하는것에 있어 리스트와 다르다.

둘 공통점은 인덱싱이 간편하다. 아래 코드를 실행시켜보면 리스트와 동일한 인덱싱을 할 수 있다.

'''튜플 자료형 파악하기 '''
# 튜플은 리스트와 다르게 값을 변경 할 수 없다.


number = (1,2,3,4,5,6,7)  # 튜플은 선언시 괄호를 () 으로 쓴다.
print(number[4])          # 튜플 내 4번째 출력
print(number[-3])         # 뒤에서 3번째 출력

'''number[2] = 9  # 에러발생, 튜플은 값을 변경 못함'''
print(number[2:4])      # 2번 인덱스부터 3번 인덱스까지만 출력, (4번은 안옴)


# 튜플 믹스형.

tuplemix = ("one","two","three",(1,2,3,4,5,6))
print(tuplemix)
print(tuplemix[3][4])   # 튜플 내 튜플에 접근하여 인덱스 출력

코드 실행 결과 (인덱싱)

 

만약 주석친 number[2] = 9를 실행시켜보면, 즉 3번째 인자를 9로 변경을 시도하려하면 에러를 일으킴을 알 수 있다.

튜플을 수정하려하면 위와같은 에러를 맛볼 수 있다.

 

 

 

반응형
반응형

원본영상을 90도 회전시키는 함수

회전각에 원하는 각을 넣어 회전 가능하다. (for문으면 계속 빙빙돌릴 수 있다)

'''
    made by 안산드레아스
    이미지 회전하기
    필요 패키지 : python-opencv
'''
import cv2


'''
    이미지를 돌리는 함수
    :param
        img    : 이미지
        degree : 회전각
'''
def im_rotate(img, degree):
    h, w = img.shape[:-1]

    crossLine = int(((w * h + h * w) ** 0.5))
    centerRotatePT = int(w / 2), int(h / 2)
    new_h, new_w = h, w

    rotatefigure = cv2.getRotationMatrix2D(centerRotatePT, degree, 1)
    result = cv2.warpAffine(img, rotatefigure, (new_w, new_h))
    return result


# 현재경로의 이미지 불러오기
sample = cv2.imread('./0.jpg')
cv2.imshow('org', sample)

# 함수 실행하기
# 원본영상의 자를 영역 원점 x,y좌표 지정. 그리고 새로 생성할 이미지 frame크기 지정
result = im_rotate(sample, 90)
cv2.imshow('img', result)

cv2.waitKey(0)
cv2.destroyAllWindows()
반응형

아래와 같은 결과. 다만 비율이 맞지 않는곳은 검정색으로 보인다.

 

검정색 비율까지 조절하는 방법, 영상 회전, 확대 축소시키는 코드 아래 참고

https://ansan-survivor.tistory.com/641

 

[Python OpenCV] 파이썬 이미지 회전하기, 확대 축소 하기

'mask.jpg' 라는 이미지를 파일로 만들어 사용했다. 파이썬 돌리는 코드와 동일한 디렉터리에 해당 파일이 있어야 한다. 이미지를 회전시키기. 이미지의 scale 조절하기 두 기능을 합쳐서 움직이기

ansan-survivor.tistory.com

 

 

 

 

 

 

 

 

 

반응형
반응형

촬영된 영상이나 사진찍힌 이미지의 특정부분을 도려내고 편집할 경우 필요하다

또는 특정영역만 뽑아내서 이미지프로세싱할 경우 필요하다.

 

그전에 알아두어야 할 사항은 파이썬의 OpenCV에서 출력하는 영상의 구조는 아래와 같다.

수학에서 사용하는 왼쪽하단의 원점이 아닌, 왼쪽 상단부터 우측하단까지 좌표를 0~max로 둔다.

원본 사진

아래 코드는 원본에서 자를 시작위치(새로운 원점)을 정하고, 그 기준으로 자를 프레임 크기를 정함.

'''
    made by 안산드레아스
    이미지 특정영역 잘라내기
    필요 패키지 : python-opencv
'''
import cv2


'''
    이미지를 자르는 함수
    :param
        img  : 이미지
        x, y : 자를곳 시작 좌표
        w, h : 자를 폭과 길이
'''
def im_trim(img, x, y, w, h):
    imgtrim = img[y: y + h, x: x + w]
    return imgtrim


# 현재경로의 이미지 불러오기
sample = cv2.imread('./0.jpg')
cv2.imshow('org', sample)

# 함수 실행하기
# 원본영상의 자를 영역 원점 x,y좌표 지정. 그리고 새로 생성할 이미지 frame크기 지정
result = im_trim(sample, 200, 200, 300, 300)
cv2.imshow('img', result)

cv2.waitKey(0)
cv2.destroyAllWindows()
반응형

결과는 아래와 같다. 이해하기 쉽게 하기 위해 원본영상과 편집된 영상을 동시에 출력시켰다.

해당 코드를 수정해서 원하는 특정부분을 잘라내고 크기를 정해 사용할 수 있다.

 

반응형
반응형

 

이미지가 좀 어두워서 영상처리에 문제가 있거나 할때 프로그래밍으로 인의적인 밝기향상을 시킬 수 있다.

즉 Brightness(밝기)를 픽셀하나하나에 갚을 더 넣어 강조 시켜줄 수 있다.

'''
    made by 안산드레아스
    출력하는 영상 또는 이미지의 전체적인 밝기(brightness)를 조절
    필요 패키지 : python-opencv
'''
import cv2

'''
    이미지 밝기 향상.
    원본, 0~255 값 한도 (픽셀값 강조)
'''
def increase_brightness(img, value):
    hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
    h, s, v = cv2.split(hsv)

    lim = 255 - value
    v[v > lim] = 255
    v[v <= lim] += value

    final_hsv = cv2.merge((h, s, v))
    img = cv2.cvtColor(final_hsv, cv2.COLOR_HSV2BGR)

    return img


# 현재경로의 이미지 불러오기
sample = cv2.imread('./0.jpg')

# 함수 실행하기
# 0~1280 사이 값으로 Downscale 하고자 하는 비율값을 입력
result = increase_brightness(sample, 0)
cv2.imshow('img', result)

cv2.waitKey(0)
cv2.destroyAllWindows()

 

반응형

 

0 값을 넣으면 현재 이미지는 원본상태가 뜬다.

255 최댓값을 넣을 때

100넣을 때

 

적당한 값을 넣어서 내가 사용하는 이미지 또는 영상의 밝기를 인위적으로 통제할 수 있다.

 

 

 

 

 

반응형
1234···6

+ Recent posts