2018년 4월 26일 목요일

[기타] 인문학

제목: 인문학 활용하기
부재: 자기 소개서 쓰는 법
비교, 상대, 총체
https://www.youtube.com/watch?v=nB7xzpEfbTg
https://www.youtube.com/watch?v=oNTYjI6f4Go


[딥러닝] 신경망기초

신경망 기초 동영상 강의

http://www.kocw.net/home/search/kemView.do?kemId=1265587

목차:
1. 딥러닝 개요
2. 인공신경망 개요
3. 퍼셉트론 구현
4. 다층퍼셉트론
5. 오류역전파알고리즘 구현 및 유도
6. 선형회귀분석
7. 크로스엔트로피 손실함수
8. 소프트맥스 회귀분석
9. 심층신경망 개요
10. 합성곱신경망
11. 신경망 학습 및 평가

딥러닝의 핵심원리을 알고자 한다면, 1, 2, 3장을 보세요.




2018년 4월 23일 월요일

[OpenCV] 기본사용

○ 생성

Mat image(height, width, CV_8UC3, 0);
Mat img = Mat::zeros(height, width,CV_32FC);
Mat img = Mat::zeros(height, width,CV_64FC);
○ 화소접근

Mat image;
image.at(j, i) = 255;
image.at(j, i)[channel] = 255;

cv::Mat_ img = image;
img(j, i) = 255; 

uchar* data = image.prt( j );
data[i] = 255;


○ Saturation Arithmetics

I(x, y) = min(max(round(r), 0), 255)
I.at(y, x) = saturate_case(r)

dst(I) = saturate_cast(src1(I) * alpha + src2(I) * beta + gamma)
void addWeighted( InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputArray dst )

dst(I) = saturate_cast(|src(I) * alpha + beta|)
void convertScaleAbs(InputArray src, OutputArray dst, double alpha=1, double beta=0)

m(I) = saturate_cast(alpha * (*this)m(I) + beta)
void Mat::convertTo(OutputArray m, int rtype, double alpha=1, double beta=0 )

○ 기타

putText(img, "text", Point(x,y), FONT_HERSHEY_SIMPLEX, 1., Scalar(B, G, R), 1);
putText(img, "text", Point(x,y), FONT_HERSHEY_DUPLEX, 1., Scalar(B, G, R), 1);

Rect rt;
Mat sub = img(rt).clone();

[MFC] 정적라이브러리 생성

[정적라이브러리]
1. 정적 함수 라이브러리 생성
2. 정적 클래스 라이브러리 생성
3. 정적 라이브러리 활용 콘솔 프로그램 작성
https://msdn.microsoft.com/ko-kr/library/ms235627.aspx

[동적라이브러리]
https://msdn.microsoft.com/ko-kr/library/ms235636.aspx

[비주얼베이직에서 DLL 함수 호출]
https://msdn.microsoft.com/ko-kr/library/dt232c9t.aspx

[비주얼C++의 DLL: DLL 전반]
https://msdn.microsoft.com/ko-KR/library/1ez7dh12.aspx

2018년 4월 19일 목요일

[MFC] 경로명다루기

PathFindFileName
PathRemoveExtension
PathFindExtension

[MFC] 유니코드 문자열 변환

// Multibytes인 겨우
CString cs("Hello");
std::string s((LPCTSTR)cs);

// Unicode인 경우
CString cs ("Hello");
// Convert a TCHAR string to a LPCSTR
CT2CA pszConvertedAnsiString (cs);
// construct a std::string using the LPCSTR input
std::string strStd (pszConvertedAnsiString);

(출처) http://forums.codeguru.com/showthread.php?231155-C-String-How-to-convert-between-CString-and-std-string

2018년 4월 12일 목요일

[python] 문법07

#
# 문자/문자열
#

#
# 메모리 그림
# 1,2,4,8,16,32,64,128,256
# 메모리에는 실제로 숫자가 저장되고, 필요에 따라 숫자를 미리 약속된 문자로 해석해서 사용
#

# ASCII CODE TABLE 값 사용하기
a = chr(65)
b = chr(66)
c = chr(67)
print(a, b, c)

#소리도 낼 수 있다.
#소리에 해당하는 문자 출력하면 된다.
#소리에 해당하는 문자: 아스키테이블에서 확인

a = chr(7)
print(a)

#
#A에서 Z까지 출력하기
#
for a in range(65, 91):
    print(a, chr(a), end='\t')

#
# A가 65라는 것을 기억할 필요가 없다.
#
a = ord("A")
print(a)

for a in range(ord('A'), ord('Z')+1):
    print(a, chr(a), end='\t')

#
# 문자(열) 더하기
#
a = 1 + 1
print(a)
a = "1"+"1"
print(a)

a = "123"
b = "456"
c = a + b
print(c)

a = 123
b = "456"
c = a + b
print(c)
→ error

# 어느 한쪽으로 일치시켜 주어야 한다.
# 숫자로 통일하거나 문자열로 통일

a = 123
b = int("456")
c = a + b
print(c)

a = str(123)
b = "456"
c = a + b
print(c)

2018년 4월 9일 월요일

[python] 문법06

#
# if elif
#

def addTest():
    print("testing...add")

def multiplyTest():
    print("testing...multiply")

while(True):
    print()
    print("-----------------")
    print("[1] Add Test")
    print("[2] Multiply Test")
    print("[3] quit")
    print("-----------------")
    print("select menu:", end="")
    n = int(input())
    if (n == 1):
        addTest()
    elif (n == 2):
        multiplyTest()
    elif (n == 3):
        break
    else:
        print("select again")

print("program terminated")

# 점수를 입력받는다.
# 입력받은 점수가 음수이면 종료,
# 그렇지 않으면 점수에 해당하는 등급(A~F) 출력
# 위 과정을 반복

while(True):
    print("input score:", end="")
    score = int(input())
    if (score < 0):
        break
    if (score >= 90):
        print("A")
    elif (score >= 80 ):
        print("B") 
    elif (score >= 70 ):
        print("C") 
    elif (score >= 60 ):
        print("D")
    elif (score < 60):
        print("F")
    else:
        print("invalid score")
print("program terminated")

#
# and , or 논리연산자
#
while(True):
    print("input score:", end="")
    score = int(input())
    if (score < 0):
        break

    if (score >= 90):
        print("A")
    if (80 <= score and score < 90 ):
        print("B") 
    if (70 <= score and score < 80 ):
        print("C") 
    if (score < 60 ):
        print("F")
print("program terminated")


#
# 포맷을 정해서 출력하기
#
print(1,2,3)

print("%d"%1)

a=1
b=2
print("a=%d b=%d"%(a, b))

print("a=%f b=%f"%(a, b))

print("a=%3.1f b=%3.1f"%(a, b))    #소수점 포함해서 총 3문자, 소수점이하 1문자

print("a=%3d b=%3d"%(a, b))

print("a=%-3d b=%-3d"%(a, b))

print("a=%03d b=%03d"%(a, b))

name="hong gildong"
print("%s"$s)

2018년 4월 6일 금요일

2018년 4월 2일 월요일

[python] 문법05

last updated: 2018/4/5
----------------------------------------
a=1
b=2
c = a+b
print(c)
----------
def add(a, b):
   c = a + b
   print(c)

add(1, 2)
----------
c=0
def add(a, b):
   c = a + b

add(1, 2)
print(c)
----------
# 함수 안에서 사용되는 변수와 밖에서 사용되는 변수는 다르다.
# 함수 밖에서 사용되는 변수를 함수 안에서도 사용하고 싶은 경우 global 사용
# 함수 안에서 사용되는 변수: 지역변수(local variable)
# 함수 밖에서 사용되는 변수: 전역변수(global variable)
# 함수 안: def 이후 띄어쓰기 한 부분

c=0
def add(a, b):
    global c
    c = a + b

add(1, 2)
print(c)
----------
# 함수도 값을 남길 수 있다.

def add(a, b):
    c = a + b
    return c
c=add(2,3)
print(c)

def multiply(a, b):
    s = 0
    for i in range(b):
        s = s + a
    return s

a = 2
b = 3
s = multiply(a, b)
print(a, 'x', b, '=', s)

# 두 개도 남길 수 있다.
# C언어에서는 허용되지 않는다.

def divide(a, b):
    c = 0   #몫
    d = 0   #나머지
 
    s = a
    while (s >= b):
        s = s - b
        c = c + 1
    d = s
    return c, d

a = 9
b = 2
c, d = divide(a, b)
print(a, '/', b, '=', c, 'x', b, '+', d) 
----------
# 무작위 숫자를 뽑고 싶을 때

import random

a = random.randint(0,9)
b = random.randint(0,9)
print(a, b)
----------
import random

def addTest(a, b, ans):
   c = a + b
   if (c == ans):
        print("O")
   else:
        print("X")

addTest(2, 3, 5)
addTest(2, 3, 8)
----------
# 5문제 출제하고 맞춘 갯수를 출력하는 프로그램을 작성하시오.
# 힌트: global, return

score = 0
def addTest(a, b, ans):
   global score
   c = a + b
   if c == ans:
      score = score + 1
   else:
      score = score + 0

addTest(2,3,5)
addTest(2,3,3)
addTest(3,4,7)
print("score:", score)
--------
score = 0
def addTest(a, b, ans):
   c = a + b
   if c == ans:
      return 1
   else:
      return 0

score = score + addTest(2,3,5)
score = score + addTest(2,3,3)
score = score + addTest(3,4,7)
print("score:", score)

#
# 연산자 단축
#
a = a + 1
a += 1

score += addTest(2,3,5)

#
# 함수 연습
# %, if, True, False
def isEven(a):
    if (a%2==0):
        return True
    else:
        return False
--------
def isEven(a):
    return (a%2==0) #연산자; 계산결과를 남긴다.
     
a = isEven(12)
print(a)