728x90
반응형

3월 4주 차를 건너뛰다니! ㅠㅠ

 

처음으로 건너 뛴 주간 회고

아마도 조금 게을렀나 보다. 그런데 게을렀다고 하기에는 운동도 했고, 블로그 글도 2개 썼으며 남친님도 만나고(왕복 6시간) 스피치도 있었고 약속도 있었다. 그냥 바쁘고 지쳤다고 해두자! 

토마가 어떻게 흘러가는지

지난주에는 GGLTM에서 오랜만에 스피치를 했다. 마침 3월이 리뉴얼 기간이며 나의 역할은 Vice President of Membership, 그리고 내 프로젝트가 Persuasive Speaking 이어서 리뉴얼해야 하는 이유에 대해 'I hate it but I beat it'이라는 제목으로 연설을 했다. 오랜만에 하는 연설이라 떨리기도 했지만 주제와 시기가 딱 맞아떨어져 재미있게 준비했고 연설도 재미있었다.

이런 코멘트들도 받았다!

 

1월부터 4월에 있을 컨퍼런스를 위해 컨퍼런스 웹사이트를 리뉴얼하는 일을 맡아 리뉴얼을 진행했다. 뭘 많이 해야 했던 것은 아닌데, 홈페이지 디자인을 신경 쓰고 작년의 정보들을 모두 새 정보들로 갈아엎고 (이 과정에서 시간이 많이 들었다 ㅠㅠ 여러 엮인 사람들로부터 정보들을 받아야 하는데 제시간에 주시는 분은 많지 않고...) 최종 오픈을 위한 회의에 회의를 거쳐 3월 23일 드디어 오픈됐다!

거의 3달을 조금씩 손보고 3월 한달 동안은 퇴근하고 매일 2~3시간씩은 시간을 쏟으며 준비했다. 오늘(3월 28일)까지 24명이 등록했으니 앞으로 홍보를 열심히 해야겠다.

컨퍼런스 소개와 등록 링크

 

District 93 Conference

District 93 Conference|Toastmasters Korea

d93conference.org

 

드디어 나도 스마트워치!!

나에게 스마트워치가 생겼다 ㅠㅠㅠ 리뷰 글을 이미 작성하긴 했는데 아직도 너무 좋다. 한 일주일 정도 착용하고 있는데 가벼워서 차고 있는지도 모르겠고 운동도 더 열심히 하게 된다. 물론 한번 정도밖에 안 했지만 내일 할 거니까!! 

이걸 차고 달리니까 페이스가 더 빨라졌다. 역시 운동은 장비빨인 것인가!? 시작하고 멈추는 게 편리해서 참 좋다. 조금 더 착용하다가 더 열심히 달리기 시작하면 좋은 모델로 갈아타고 싶다.

 

이번 주

이번 주는 벌써 4월이다. 학생일 때는 4월에 있는 중간고사 때문에 4월이 오는 게 참 싫었다. 4학년 때부터는 조금 여유로워지더니 시험공부도 잘 안 하고 벚꽃 보러 다니고 여유롭고 행복했다. 지금도 중간고사 보는 것보다 회사 다니는 게 더 좋다고 생각한다. 날씨 따듯해지고 꽃도 피고 참 좋은 날들일 텐데 그래서 그런가 더 하루하루가 아쉽다. 

꽉꽉 채워하고 싶은 것들을 모두 할 수 있는 체력이 있었으면 좋겠다.

4월도 바쁘겠지만 일도 열심히, 공부도, 토마도, 운동도 다 열심히 하고 싶다. 너무 부담 가지지 말고 열심히.

728x90
반응형
728x90
반응형

Python argument 파싱(parsing)

.py 프로그램 실행 argument 주고 파싱하는 방법

 

1. Bash 또는 terminal에서 실행:

> python main.py --option1=test1 --option2=test2

 

 

2. main.py 에서

import argparse



def main(args):

	option1 = args.option1

	…


if __name__ == '__main__':

	parser = argparse.ArgumentParser(description="option test")



	parser.add_argument('--option1', help="description option1", type=str, action='store')	

	parser.add_argument('--option2', help="description option2", default='default value', type=str, action='store')



	args = parser.parse_args()

	main(args)

위와 같이 실행

728x90
반응형
728x90
반응형

Disable tensorflow warning message

 

keras model을 로드하거나 tensorflow를 import 하고 코드를 실행할 때 warning message가 거슬리게 자꾸 터미널에 나타날 때가 있습니다.

코드가 실행이 안되는게 아니라 이런 워닝 메시지가 자꾸 뜹니다. 실행은 잘 되고...

 

거슬려도 참고 테스트 하다가 이걸 좀 처리를 해줘야겠다! 해서 첫 번째 아래 시도를 해 봤습니다.

import warnings

warnings.filterwarnings(action='ignore')

흠.. 주피터 노트북에서 실행할 때는 효과가 있는 듯했지만 역시나 tensrflow 워닝은 잡아주지 못하더군요..

그래서 silence_tensorflow 라는 모듈을 import 했습니다.

> pip install silence_tensorflow

먼저 install을 해주고, 아래와 같이 사용합니다.

from silence_tensorflow import silence_tensorflow
silence_tensorflow()

from keras.models import load_model

 

그랬더니 아주 깔끔하게 워닝 메시지는 출력하지 않습니다!

모델 하나 가져오려고 하니 워닝이 막막 엄청 많아...

 

그럼 이만 :-)

728x90
반응형
728x90
반응형

Python OpenCV 정리 | cv2.imread(), cv2.imshow(), cv2.imwrite()

 

개인 프로젝트로 이미지 처리 & 인식을 하고 있는데, 오늘은 이미지 처리의 기본인

이미지 읽기, 보기, 저장하기를 정리해보려고 합니다!

 

공식 문서를 먼저 파악하는 편인데, 매번 까먹다 보니 한번 정리를 하면 좋겠더군요 :)

파이썬에서 OpenCV를 사용하려면 면저 아래와 같이 모듈을 import 해야 합니다.

import cv2

 

cv2.imread() : 이미지 읽기

import cv2

img = cv2.imread('test.jpg', cv2.IMREAD_COLOR)

위와 같이 읽고자 하는 이미지의 경로를 첫 번째 파라미터로 주어 이미지를 읽어올 수 있습니다. 

 

조금 더 자세히 살펴보자면,

cv2.imread(fileName, flag)

  • fileName (str) – 이미지 파일의 경로
  • flag (int) – 이미지 파일을 읽을 때의 Option
  • return: image 객체 행렬

flag는 이미지 파일을 읽을 때 주는 옵션입니다.

  • cv2.IMREAD_COLOR : 이미지 파일을 color로 읽어 들임
  • cv2.IMREAD_GRAYSCALE : 이미지 파일을 grayscale로 읽어 들임
  • cv2.IMREAD_UNCHANGED : 이미지 파일을 alpha 채널까지 포함하여 읽어 들임

위와 같이 옵션을 줄 수 있으며 1, 0, -1로도 줄 수 있습니다.

 

cv2.imshow() : 이미지 보기

import cv2

img = cv2.imread("test.img", cv2.IMREAD_COLOR)

cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

읽어 들인 이미지를 윈도우 창에 보여주게 되는데, 조금 더 자세히 살펴보겠습니다.

 

cv2.imshow(title, image)

  • title - 윈도우 창의 이름
  • image - 읽어들인 이미지 객체

cv2.waitkey(0)cv2.destryAllWindows() 는 각각 keyboard 입력을 대기하는 함수와 윈도우 창을 모두 닫는 함수입니다. 

이 함수를 써주지 않으면 중간에 오류가 나기도 합니다.

 

cv2.imwrite() : 이미지 저장

import cv2

gray = cv2.imread("test.img", cv2.IMREAD_GRAYSCALE)

cv2.imwrite('gray_test.png', gray)

읽어 들인 이미지를 저장하는 함수입니다. 

경로를 지정해 저장할 수 있으며, 중간에 이미지 처리(노이즈 제거, 색 변환, 원근 변환 등)을 통해 변환된 이미지를 저장할 수 있습니다.

 

cv2.imwrite(fileName, image)

  • fileName (str) – 저장될 파일명
  • image – 저장할 이미지

오늘은 이미지 처리의 기초가 되는 읽고, 보고, 저장하는 방법을 정리해 봤습니다.

앞으로 시간이 생길 때 더 다양한 모듈을 정리하고 파이썬에서 시각화를 할 수 있는 matplotlib에 대해서도 조금 정리를 해 보면 좋겠군요! 

유익하게 보셨다면 댓글을 달아주세요 ㅎㅎ (광고도 클릭해주세요)

 

그럼 이만 :)

728x90
반응형
728x90
반응형

파이썬에서 파이썬 호출 인자 사용하기

 

파이썬 실행 파일을 호출할 때 인자를 넘겨줘야 할 때가 있습니다.

예를 들어 호출 하며 파일 경로를 달리해 저장 또는 읽을 파일 경로를 알려줄 수 있습니다.

 

이 때는 아래와 같이 사용하시면 됩니다.

import argparse

parser = argparse.ArgumentParser(description='Argparser')
# argument는 원하는 만큼 추가한다.
parser.add_argument('path1', type=int, help='first path')
parser.add_argument('path2', type=int, help='second path')

args = parser.parse_args()

path1 = args.path1
path2 = args.path2

 

우선 argparser를 import 하고

원하는 argument를 추가하여 호출 시

> python test.py 1 2

와 같이 호출하며 1과 2는 인자입니다. 위의 예시에서는 1(파일 이름) 경로와 2(파일 이름) 경로로 이해하시면 되겠습니다.

 

질문이 있으시다면 아래 댓글을 달아주세요 :)

728x90
반응형
728x90
반응형

programmers.co.kr/learn/courses/30/lessons/12939

 

코딩테스트 연습 - 최댓값과 최솟값

문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 (최소값) (최대값)형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를

programmers.co.kr

 

#include <string>
#include <vector>
#include <iostream>
#include <sstream>
#include <algorithm>
#include <cstdlib>
#include <stdlib.h>

using namespace std;

vector<string> split(string input, char delimiter) {
    vector<string> answer;
    stringstream ss(input);
    string temp;

    while (getline(ss, temp, delimiter)) {
        answer.push_back(temp);
    }
    return answer;
}

string solution(string s) {
    string answer = "";
    vector<string> nums = split(s, ' ');
    vector<int> num;
    int max = -9874;
    int min = 9874;

    for(int i= 0; i < nums.size(); i++){
        num.push_back(atoi(nums[i].c_str()));
        if(num[i] > max)
            max = num[i];
        if(num[i] < min)
            min = num[i];
    }
    answer = to_string(min) + " " + to_string(max);
    return answer;
}
728x90
반응형

+ Recent posts