라벨이 파이썬인 게시물 표시

[Python] selenium 를 이용한 이미지 크롤링

특정 이미지를 학습 시킬 일이 있어 이미지를 모으는 방법을 찾다가 알아낸 방법으로   이미지 크롤링이란 녀석이다.   홈페이지에 찾고 싶은 검색어를 입력하고 프로그램이 알아서 이미지들을 수집하는 것이라 보면 되겠다.   우선 참고한 곳의 블로그들 : 섭섭님 블로그 mjhuh263 님 블로그    그럼 코드 부터! from selenium import webdriver from selenium.webdriver.common.keys import Keys import time import urllib.request import os def search_selenium(search_name, search_path, search_limit):     search_url = "https://www.google.co.kr/imghp?hl=ko"     driver = webdriver.Edge(executable_path='msedgedriver.exe')     driver.get(search_url)     elem = driver.find_element_by_name("q")     elem.send_keys(search_name)     elem.send_keys(Keys.RETURN)     SCROLL_PAUSE_TIME = 1     # Get scroll height     last_height = driver.execute_script("return document.body.scrollHeight")     while True:         driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")         time.sleep(SCROLL_PAUSE_TIME)         new_height = driver.execute_script("return document.body

[Python] OpenCV 이미지 채널 별 분리

개인 프로젝트에도 시간을 할애해야하건만 출장이다 회사 프로젝트다 핑계거리가 많아 아무래도 점점 나태해져 가는 듯 하다. 파이썬을 이용한 주식 분석 및 자동 매매 프로그램이 최종 목표이기에 우선은 이미지 처리에 관심을 가져보자. 이미지 처리를 위해서 영상을 회색조로 바꾸어 처리하기도 하지만 R,G,B 각 채널별로 분리를 하기도 한다. 우선 코드를 보자 import cv2 img = cv2.imread( 'masala.jpg' , cv2.IMREAD_COLOR) cv2.imshow( 'img' , img) cv2.waitKey( 0 ) b , g , r = cv2.split(img) cv2.imshow( 'img_b' , b) cv2.imshow( 'img_g' , g) cv2.imshow( 'img_r' , r) cv2.waitKey( 0 ) cv2.destroyAllWindows() imread 함수를 이용하여 이미지를 읽어 온 후 한번 출력하고 waitKey 함수를 이용해 키보드의 입력을 기다린다. 키보드 입력이 들어오면 읽었던 이미지를 R,G,B 3개의 채널로 분리한 후 각각 채널별로 이미지 출력 후 다시 키보드의 입력을 받은 후 종료하는 간단한 코드이다. 여기서 주의할 점은 우리가 흔히 알고 있는 R,G,B 순서가 아닌 B,G,R 순서로 반환된다는 점이다.

[Python] OpenCv를 이용하여 마우스 위치 가져오기

이미지
이 얼마만에 쓰는 파이썬 관련 글이란 말인가 ㅠㅠ 영상처리에서 마우스 만큼 또 많이 쓰는 게 없으니 오늘은 마우스 포인터 위치 받아오는 함수를 만들어보도록 하자 구글링 해보면 나오지만 마우스 포인터 위치를 받아오는 방법은 1. pynput 모듈을 이용하는 방법 2. OpenCV를 이용하는 방법 3. PyQt를 이용하는 방법 크게 3가지 경우가 많이 쓰이는 것 같다. 여기선 2번 OpenCV를 이용해서 해보도록 하자 왜냐면 이미 깔려있는데다가 다른 것 깔기 귀찮음으로 ㅎㅎ OpenCV를 이용하려면 마우스 콜백함수를 이용하여 위치를 받아오면 된다. 일단 코드 부터 보도록 하자 import cv2 as cv # OpenCV import import numpy as np # 행렬(img)를 만들기 위한 np import # 마우스 이벤트 콜백함수 정의 def mouse_callback ( event , x , y , flags , param ): print ( "마우스 이벤트 발생, x:" , x , " y:" , y) # 이벤트 발생한 마우스 위치 출력 img = np.zeros(( 256 , 256 , 3 ) , np.uint8) # 행렬 생성, (가로, 세로, 채널(rgb)),bit) cv.namedWindow( 'image' ) #마우스 이벤트 영역 윈도우 생성 cv.setMouseCallback( 'image' , mouse_callback) while ( True ): cv.imshow( 'image' , img) k = cv.waitKey( 1 ) & 0xFF if k == 27 : # ESC 키 눌러졌을 경우 종료 print ( "ESC 키 눌러짐" ) break cv.destroyAllWindows()   해당

[Python] 파이썬에서 Opencv를 이용해 웹캠 영상 읽어오기 및 저장

이미지
자 이번엔 노트북에 달린 카메라를 이용해 영상을 받아 출력해보자 우선 코드를 보자 import cv2 cap = cv2.VideoCapture( 0 ) print ( 'width :%d, height : %d' % (cap.get( 3 ) , cap.get( 4 ))) while ( True ): ret , frame = cap.read() # Read 결과와 frame if (ret) : gray = cv2.cvtColor(frame , cv2.COLOR_BGR2GRAY) # 입력 받은 화면 Gray로 변환 cv2.imshow( 'frame_color' , frame) # 컬러 화면 출력 cv2.imshow( 'frame_gray' , gray) # Gray 화면 출력 if cv2.waitKey( 1 ) == ord ( 'q' ): break cap.release() cv2.destroyAllWindows() opencv를 import 해준 뒤 VideoCapture() 함수를 이용해 웹 캠을 연결 한다. 전달 인자는 디바이스 아이디를 넘겨주는데 0을 넣어주면 보통 웹캠이나 카메라에 연결 된다. print 문으로 기본 웹캠의 width 와 height를 출력해보도록 하자 프로그램을 종료하려면 q 버튼을 눌러주면 종료! 아래는 코드 실행 결과 [컬러 출력 결과] [Gray 출력 결과] [출력된 카메라 해상도] 영상 저장은 cv2.VideoWriter_fourcc() 를 이용하면 가능하다 매개변수로 코덱을 넘겨주는데 'D','I','V','X' 와 같이 넘겨주거나 아래와 같이 *'DIVX' 로 넘겨주면 됨 import cv2

[Python] 파이썬에서 Opencv를 이용해 이미지 읽기 및 쓰기

이미지
    자 이번엔 이전에 Opencv 설치에서 테스트 했던 코드를 살펴보고 이미지 읽어오기 및 쓰기에 대해 써보자 일단 코드는 아래와 같다! import cv2 fname = '1.jpg' # 읽어올 파일 이름   img = cv2.imread(fname , cv2.IMREAD_COLOR) # 파일 읽어오기 : 컬러로 읽기 gray_image = cv2.imread(fname , cv2.IMREAD_GRAYSCALE); # 파일 읽어오기 : 그레이로 읽기 cv2.imshow( 'image' , img) # 이미지 출력 cv2.imshow( 'Gray Image' , gray_image) cv2.waitKey( 0 ) # 키 입력 기다리기 (0일 경우 무한 대기) cv2.destroyAllWindows() # 창 없애기 일단 import cv2 으로 opencv를 import 하자 imread() 함수를 이용해서 이미지를 읽어오도록 하자 여기서 2번째 인자를 통해 읽어올 이미지 형식을 정할 수 있다. 위 코드 실행 결과!! [실행 결과..귀여운 피카츄!] 이제 이미지를 저장해보자 이미지 저장은 imwrite() 함수를 이용하면 된다. import cv2 fname = '1.jpg' img = cv2.imread(fname , cv2.IMREAD_COLOR) gray_image = cv2.imread(fname , cv2.IMREAD_GRAYSCALE); cv2.imshow( 'image' , img) cv2.imshow( 'Gray Image' , gray_image) cv2.waitKey( 0 ) cv2.destroyAllWindows() cv2.imwrite( '2.png' , gray_image) # 이미지 저장 코드를 실행하면

[Python] 파이썬 OpenCV 설치

이미지
한국에 온 후 사용하던 매트랩을 사용을 못하니 대신할 녀석으로 파이썬을 선택했다 우선 개발 속도가 빠른데다가 문법도 비슷하고 무엇보다 머신 러닝에 강력한 성능을 보여주니 앞으로 테스트 할 일이 있으면 파이썬을 이용해 진행하고자 한다 우선은 파이썬 용 OpenCV를 설치하도록 하자 일단 난 파이참을 이용하니까 파이참에서 설치 법은 다음과 같다. 파이참 메뉴 File -> Setting을 누르면 위와 같은 창이 나타난다. 왼쪽 메뉴에서 Project Interpreter 를 선택하면 오른쪽에 현재 설치 된 항목들이 나타난다. 제일 오른쪽 + 버튼을 누르면 설치할 수 있는 인터프리터들이 나오는 창이 뜬다. 검색창에 openCV를 검색하면 위와 같은 결과들이 나타나는데 그림과 이 opencv-python 을 선택하여 Install Package 버튼을 누르자! 설치가 완료 되면 다음 코드를 입력하고 그림 파일을 코드와 같은 디렉토리에 넣고 간단히 실행 테스트를 해보자 import cv2 fname = '1.jpg' img = cv2.imread(fname, cv2.IMREAD_COLOR) cv2.imshow('image',img) cv2.waitKey(0) cv2.destroyAllWindows() 아래와 같이 이미지가 뜨면 테스트 완료!!