반응형

전체 글 764

[휴대용 스피커] 보스 사운드 링크 플렉스 블루투스 (Bose Soundlink Flex) 리뷰

목차 보스 사운드 링크 플렉스 블루투스 (Bose Soundlink Flex) 장점 및 기능 이번에 출시된 보스 사운드 링크 플렉스 (Sound link flex)는 휴대 전용 스피커(Speaker) 입니다. 사진과 같이 스피커 끝단에 가방이나 고리에 걸 수 있게 걸이 훅이 있는 구조 입니다. Bose 사운드 링크 플렉스의 첫번째 장점은 스피커의 가장 중요한 덕목 중에 하나인 음질 입니다. 1. POSITIONIQ 보스(BOSE) 음질이야 이미 유명하고 야외 용 스피커의 장점을 살리기 위해 POSITIONIQ 기능을 넣었습니다. 이 기능은 스피커를 좌우 상하 어느면에 놓고 틀어도 해당 위치를 인식해서 위치에 맞춘 음질을 재생해 줍니다. 2. IP67 IP67은 방수 등급을 의미 합니다. 위에 영상처럼 사..

[Python]파이썬으로 PDF 자르기, 붙이기, 편집하기

목차 [Python]파이썬으로 PDF 붙이기 파이썬에서 제공하는 PyPDF2 라이브러리를 사용하면 손쉽게 PDF 편집(Edit)을 할 수 있습니다. 우선 PDF 문서를 붙이는 (Append, Combine, Merge) 방법에 대해 알아 보겠습니다. 방법은 아래와 같이 간단하게 진행 됩니다. PdfFileReader 함수로 PDF 문서 페이지 일기 PdfFileWriter 함수로 읽은 문서를 저장 / 쓰기 아래 예제를 통해 구현해보겠습니다. 참고로 예제 구현을 위해 pdf001.pdf 파일과 pdf002.pdf 파일을 만들었고 문서(Document) 내용은 아래와 같습니다. 예제 코드>> from PyPDF2 import PdfFileReader, PdfFileWriter pdf_writer = PdfF..

파이썬(Python) 2022.04.02

[PDF] PDF파일 프로그램 설치 없이 기본 프로그램으로 잘라내기

목차 크롬 웹 브라우저로 PDF 편집하기 윈도우(Window)를 사용하시면 PDF를 열때 기본 프로그램으로 Microsoft Edge에서 열어 줍니다. 확인하는 방법은 아래와 같이 pdf 파일에서 마우스 우클릭하면 아래와 같이 연결프로그램을 선택할 수 있습니다. 첫 번째로 Chrome 웹브라우져(Web Browser)를 사용해서 PDF 잘라내는 방법에 대해 알아 보겠습니다. 우선 크롬(Chrome)으로 pdf 파일을 열어 줍니다. 열면 아래와 같이 우측 상단에 프린터 그림이 있습니다. 프린터를 클릭 후 인쇄 대상을 "PDF로 저장"으로 변경합니다. 그리고 페이지는 "맞춤설정"을 하고 저장하길 원하는 페이지만 입력하면 원하지 않는 PDF를 잘라서 저장할 수 있습니다. 에지 웹 브라우저로 PDF 편집하기 에..

여러가지공부 2022.04.01

[Python]OpenCV 사람 얼굴 사진 겹치게 합성하기, 겹치면서 사진 바꾸기

목차 [Python]OpenCV 사람 얼굴 사진 겹치게 합성하기 이번 포스트에서는 파이썬 OpenCV를 사용해서 사람 얼굴이 있는 이미지 파일 2개를 열어서 한 얼굴에서 다른 얼굴로 그라데이션 처럼 천천히 바뀌는 예제를 구현할 것입니다. 이번 예제(Example)를 구현하기 위해서는 OpenCV 로 읽은 이미지 파일(Image file)은 픽셀값을 저장한 Numpy 행렬 형태라는 사실을 이해 해야 하고 두 이미지 사이에 픽셀 값에 Weighting을 주면서 점차적으로 바꿔야 한다는 원리를 이해하여야 합니다. 픽셀값(Pixel value)에 대한 설명은 아래 포스터에 잘되어 있으니 참조 하시길 바랍니다. https://scribblinganything.tistory.com/493 [Python]OpenCV..

[Python]OpenCV 마우스 이벤트/클릭(Mouse Event, Click) 콜백함수

목차 파이썬 마우스 클릭시 함수 구현 파이썬 OpenCV에서 이미지를 띄워 놓고 마우스 클릭 시 특정 함수가 동작되게 하기 위해서는 콜백 함수를 사용해야 합니다. 콜백 함수는 이벤트(Event)가 발생할 시 특정 함수를 시행하는 함수 입니다. 간단히 설명을 드리면 파이썬(Python) 함수는 라인 별로 구현을 하고 완료 합니다. 하지만 마우스 입력(Mouse Click)이나 키보드 입력(Keyboard input)시에 어떤 동작을 구현하길 원한다면 누군가는 코드가 진행되는 와중에도 event가 발생하는 지 모니터링(Monitoring)하고 있어야 합니다. 그리고 이벤트 발생 시 특정 동작을 이행하는데 이것이 콜백 함수의 역할 입니다. 아래는 OpenCV 라이브러리에서 마우스(Mouse) 이벤트 발생 시 ..

[Python]OpenCV 그림 영역 선택, 모자이크 처리하기(Image, Mosaic, Blur)

목차 파이썬 OpenCV Image File 모자이크 처리 이번 포스트는 파이썬 OpenCV의 Blur 함수를 사용해서 모자이크(Mosaic)처리 하는 방법에 대해 알아보겠습니다. 이번 포스트를 수행하기 위해서 아래 단계를 수행 합니다. 이미지 파일불러오기 모자이크할 영역 선택하기 선택 영역 blur함수로 모자이크하기 원본 영역에 blur 모자이크된 영역 덧붙이기 변경된 이미지 불러오기 1~2번 단계는 selectROI로 구현 합니다. selectROI 함수 사용법에 대해서는 아래 포스트에서 진행하였으니 궁금하시면 아래 포스트 참조하시면 됩니다. https://scribblinganything.tistory.com/496 [Python]OpenCV 이미지 마우스 클릭 좌표(위치) 값 확인(selectRO..

[과학상식] 도플러 효과란? 공식 (Doppler effect)

목차 도플러 효과란?(Doppler effect) 도플러 효과란 오스트리아 물리학자 크리스티안 도플러(Christian Doppler)가 1842년 발견한 현상을 얘기 합니다. 그림과 같이 음원(Sound source)나 광원(Light source)가 고정된 위치에서 소리나 빛을 낼 경우 그림처럼 일정한(Same frequency) 파장(wave)이 발생합니다. 만일 음원(Sound source)가 그림처럼 이동하는 경우 음원과 Sound의 파장이 같은 방향일 경우 상대 속도가 줄어 들어 짧은 주기(High frequency or Low period)의 파장이 발생합니다. 반대로 음원과 Sound의 파장 진행 방향이 반대인 경우 (위그림에서는 왼쪽) 상대 속도가 커져서 파장의 주기가 넓어지고 주파수는 ..

여러가지공부 2022.03.26

[Python] 키보드(keyboard) 이벤트(event) 값 읽기

목차 파이썬 키보드 값 클릭 확인 함수 is_pressed 파이썬(Python)의 키보드 값을 입력하면 입력에 대응해서 뭔가를 처리하고 싶을 때가 있습니다. 이러한 이벤트(event)를 감지하기 위해 필요한 라이브러리가 keyboard 입니다. 만일 keyboard 라이브러리가 없다면 pip install keyboard로 먼저 설치를 하시길 바랍니다. 키보드를 통해 입력한 값이 맞는지를 확인하는 함수는 is_pressed 입니다. 아래 예제 코드를 보시면 쉽게 이해할 수 있습니다. 예제 코드>> import keyboard while True: if keyboard.is_pressed("1"): print("hello") break 4번 라인: 키보드 1버튼을 클릭하면 if 문 실행 결과>> 코드 실행..

[Python]OpenCV 이미지 마우스 클릭 좌표(위치) 값 확인(selectROI 함수)

목차 OpenCV 이미지 마우스 클릭 좌표 값 확인 파이썬 OpenCV의 함수 중에 selectROI 함수는 이미지(image) 파일이나 그림 파일을 읽었을 때 마우스로 원하는 이미지를 클릭하면 해당 위치(Location) 값을 return해 줍니다. selectROI 함수 사용법은 아래와 같습니다. Syntax>> cv2.selectROI(윈도우창 이름, 소스 이미지명, 격자형태 선택) 윈도우창 이름은 imshow를 사용했을 때 처럼 selectROI도 이미지 창을 만들어 주는데 이미지 창(window)의 이름을 설정합니다. 소스 이미지명은 imread로 읽은 이미지 파일(image file)의 return 값을 저장한 객체 명을 입력 합니다. 격자 형태는 마우스를 클릭하면 사각형이 만들어 지는데 Fa..

[주파수] Octave 계산 방법(Calculation), 파이썬으로 구현하기

목차 Octave 계산 방법(Calculation) 주파수(Frequency)에서 이동 속도(Velocity)를 결정할 때 Octave/min 과 같은 단위를 볼 수 있습니다. 그리고 주파수(Frequency) 분석에서 Octave 단위로 분석하는 것을 볼 수 있습니다. 음악에서는 1/3 Octave로 분석을 종종 합니다. Octave란 간단하게 얘기해서 기준 주파수에서 2배되는 주파수를 1Octave 단위로 부릅니다. 수식은 아래와 같습니다. f1은 기준이되는 주파수이고 f2는 다음 주파수 값입니다. 만일 f1과 f2가 두배이면 log2/log2가되어 1octave가 됩니다. Octave 파이썬으로 구현하기 파이썬으로 Octave를 구하는 식을 만들기 위해서는 log를 사용하는 함수 numpy log ..

파이썬(Python) 2022.03.24

[Python]OpenCV 색변환 함수 cvtColor 사용 방법(Gray, HSV, RGB, LAB 비교)

목차 파이썬 OpenCV cvtColor 사용 방법 파이썬 openCV에서 제공하는 함수 중에 cvtColor 함수가 있습니다. 함수 가운데 C는 대문자로 작성하셔야 합니다. 그렇지 않으면 아래와 같은 에러 메세지가 발생 합니다. 에러 메세지>> Traceback (most recent call last): File "d:\Python\test02\test06.py", line 5, in modified_img = cv2.cvtcolor(img, cv2.COLOR_BGR2GRAY ) AttributeError: module 'cv2' has no attribute 'cvtcolor' 파이썬의 openCV의 imread 읽은 이미지(image)파일은 BGR(Blue, Green, Red) 형태로 읽습니다...

[Python]OpenCV 이미지 픽셀로 변경하여 수정하기(Numpy array)

목차 OpenCV 이미지 픽셀(Pixel)값 확인하기 우리가 사용하는 컴퓨터의 이미지 파일은 아시다 시피 디지털(Digital)로 되어 있습니다. 화면으로 보이는 값은 실상 픽셀이라는 작은 단위를 BGR(Blue, Green, Red)의 비율로 원하는 색상을 표현해주는 것입니다. 파이썬의 OpenCV 라이브러리를 사용해서 이미지 파일을 읽으면 출력 값은 Numpy(넘파이) array 형태로 숫자로 나옵니다. 즉 픽셀 위치에 따라 배열로 구성되고 구성 값은 BGR값이 되는 것입니다. 아래 예제는 이미지 파일을 읽고 읽은 파일의 종류와 값을 확이하는 작업입니다. 이미지는 무료이미지 사이트에서 포르쉐 자동차 사진을 다운 받아서 사용하였습니다. 예제 코드>> import cv2 img=cv2.imread("po..

[Python]OpenCV 동영상 저장하기, 코덱 종류와 사용방법(Video, fourcc, codec)

목차 파이썬 코덱 종류와 사용방법 파이썬 OpenCV에서 비디오 파일을 다루다 보면 코덱(Codec) 사용을 종종하게 됩니다. 코덱(Codec)이란 영상 파일의 Encode와 Decode를 처리함으로써 우리가 화면에서 보거나 파일로 저장하는 작업을 도와 줍니다. 이번 포스트에서는 코덱(Codec)을 사용해서 영상 파일을 저장하는 코드를 작성할 것입니다. 주로 사용하는 코덱은 아래와 같습니다. MJPG DIVX H264 H264의 경우 웹브라우져(Web browser) 용 비디오 코덱으로 많이 사용 됩니다. 그 외 각종 코덱은 텍스트의 링크를 통해 확인하실 수 있습니다. 코덱을 Python에서 사용하는 방법은 간단하게 아래와 같은 방법으로 진행하시면 됩니다. codec = "DIVX" fourcc = cv..

[Python] OpenCV 동영상 파일 재생하기 (화면 사이즈 변경)

목차 OpenCV 동영상 파일 재생하기 앞서 포스트에서 비디오(Video) 파일(mp4)의 영상 정보를 가져오는 방법에 대해 알아보 았습니다. 이번 포스트는 영상 파일의 사이즈 정보를 가져와서 크기를 변경하고 재생하는 코드를 작성하고 설명하겠습니다. 순서는 아래와 같습니다. 동영상 불러오기(VideoCapture) 동영상 정보가져오기(cv2.get) 동영상 읽기(cv2.read) 프레임(Frame) 크기 변경하기(cv2.resize) 프레임(Frame) 출력 하기(imshow) 코드는 위 순서대로 진행 되고 각 순서에서 사용되는 파이썬 openCV 함수(Function)은 괄호안에 넣었습니다. OpenCV 동영상 파일 재생하기 실습 예제 코드>> import cv2 Vid = cv2.VideoCaptur..

[OpenCV] Python 비디오 속성 값 불러오기(Video attributes)

목차 OpenCV 비디오 속성(Attribute) 파이썬의 OpenCV의 VideoCapture 함수를 사용해서 동영상 파일을 불러 올 수 있습니다. 불러온 비디오 파일을 처리할 때 속도나 크기 처리나 후속 처리를 위해서 특정 비디오가 가진 메타 정보들을 불러와야 합니다. 불러온 비디오 파일을 사용자 지정 객체에 저장하고 객체를 get 함수를 사용해서 속성 정보를 불러 올 수 있습니다. 주요 속성 값은 아래와 같습니다. CAP_PROP_POS_MSEC : 현재 비디오 파일의 위치 (ms, timestamp) CAP_PROP_POS_FRAMES : index 0 base frame CAP_PROP_POS_AVI_RATIO : 비디오 파일의 상대적 위치 (0: 시작점, 1 끝점) CAP_PROP_FRAME_..

[전기자전거]e까미노(CAMINO) 아톰 리뷰 (디자인이 멋진 접이식 자전거)

목차 e까미노(CAMINO) 아톰 리뷰 이번에 소개할 전기 자전거는 디자인이 제 마음에 쏙 드는 e까미노 아톰입니다. 현재 쿠팡에서 27% 할인된 최저가로 판매 중이어서 고민 중인 제품이라 정리할 겸 포스트를 작성 해봅니다. 위에 색상은 회색(Gray)로 검정(Black)과 흰색(White) 총 3가지 중에 선택 가능 합니다. 저는 개인적으로 회색이 가장 마음에 듭니다. 전기 자전거의 가장 중요한 성능 지표 중에 하나인 배터리는 36V 5.2Ah 팩으로 LG 리튬이온 셀을 사용합니다. 충전시간은 약 3~4시간 정도 걸립니다. 충전은 배터리를 탈착해서 배터리만 별도로 충전이 가능하고 아니면 자전거에 연결된 채로 충전이 가능 합니다. 위 그림에서 사이에 들어가 있는 것이 배터리고 쉽게 탈 부착이 가능 합니다..

[Python]OpenCV imread함수 사용법, 옵션(Option), 예제

목차 OpenCV imread함수 사용법 파이썬의 cv2.imread 함수는 이미지(image)파일을 읽을 때 사용하는 함수 입니다. 이미지 파일은 Numpy arrary 형태로 숫자 값들이 넘어오고 이 숫자가 해당 위치에서의 색을 의미 합니다. cv2.imread 는 기본적인 기능은 이미지 파일을 읽는 것이지만 내부에 많은 Option 들이 있어서 사용 방법을 알아야 활용도를 높일 수 있습니다. 이번 포스트에서는 다양한 예제를 통해 이미지파일을 불러오는 것 이외에 다양한 기능에 대해 알아 보겠습니다. cv2.imread(파일명, 옵션 값) 파일명에는 이미지 파일의 경로와 파일명을 입력 합니다. 저는 코드와 동일 폴더에 이미지 파일을 넣을 예정으로 파일 경로를 입력하지 않습니다. 옵션 값으로는 아래와 같..

[Python] Numpy axe 값이란? 행/열에 따라 합치기

목차 Numpy Axes 의 의미, 사용 방법 위 그림은 2차원 그래프의 x축과 y축을 표현한 도면입니다. 그래프 안의 모든 점은 x, y 축(axe) 값에 의해 위치가 결정 됩니다. 넘파이 Axes 도 결국 위 개념을 적용한 것입니다. x 축이 행(Row)이고 y 축이 열(Column) 값입니다. 주의할 점은 1차원 리스트(List)와 2차원 배열(Matrix)에서 axis 값을 다르게 사용해야 합니다. 1차원에서는 아래와 같이 axis 0이 x축이고 y값이 없습니다. axis0 = 열(Column) 2차원에서는 아래와 같이 행과 열의 위치를 정합니다. axis0 = 행(Row) axis1 = 열(Coulmn) 다음으로 주의해야할 점은 행렬의 크기 값이 일치해야 인식하고 함수가 진행됩니다. 만일 한줄 ..

[Python]Pandas 인덱스, 행/열 이름 List로 출력하기(Index, Value, Name)

목차 [Python]Pandas 인덱스, 행/열 이름 출력하기(Index, Value, Name) loc를 통해서 Pandas의 dataframe, series의 값을 출력 했습니다. 이번 포스트에서는 index 명이나 Column 최상단의 값을 list로 추출하는 방법에 대해 알아 보겠습니다. 출력 방법은 간단합니다. 아래 함수를 사용해서 출력 하면 됩니다. index : 인덱스 값을 불러 옵니다. values : dataframe 값을 불러 옵니다. columns : 열의 헤더(Header)값을 불러 옵니다. to_list : 불러 온 값을 리스트로 바꿔줍니다. 예제 코드- Index값>> import pandas as pd df = pd.DataFrame({ "name" : ["James", "Ja..

[Python] Numpy 행렬 array에 열(Column), 행(Row) 추가하기

목차 파이썬 Numpy Array Matrix에 행 값 리스트(List) 추가하기 넘파이로 배열(Matrix)을 만들고 추가 행을 붙이는 방법에 대해서 알아 보겠습니다. 행(Row)을 붙이는 함수는 아래와 같습니다. np.r_(원본 어레이, 추가할 행) 함수는 r_ 함수를 사용하고 입력 값으로는 원본 array값에 추가할 행 값을 입력 합니다. 여기서 추가할 행에서 주의할 부분은 row의 개수에 맞춘 numpy array 값이여야 하고 list로 넣을 경우 [[ ]] 괄호를 두번 사용해서 동일 matrix라는 사실을 명기 해야 합니다. 그렇지 않으면 아래와 같은 에러 메세지가 발생 합니다. row_add_list = np.r_[np_list, insert_row] File "C:\Users\forgo\A..

반응형