반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62

from __future__ import print_function
 
import numpy as np
import cv2 as cv
 
from video import create_capture
from common import clock, draw_str
 
def detect(img, cascade):
    rects = cascade.detectMultiScale(img, scaleFactor=1.3, minNeighbors=4, minSize=(3030),
                                     flags=cv.CASCADE_SCALE_IMAGE)
    if len(rects) == 0:
        return []
    rects[:,2:] += rects[:,:2]
    return rects
 
def draw_rects(img, rects, color):
    for x1, y1, x2, y2 in rects:
        cv.rectangle(img, (x1, y1), (x2, y2), color, 2)
 
if __name__ == '__main__':
    import sys, getopt
    print(__doc__)
 
    args, video_src = getopt.getopt(sys.argv[1:], '', ['cascade=''nested-cascade='])
    try:
        video_src = video_src[0]
    except:
        video_src = 0
    args = dict(args)
    cascade_fn = args.get('--cascade'"../../data/haarcascades/haarcascade_frontalface_alt.xml")
    nested_fn  = args.get('--nested-cascade'"../../data/haarcascades/haarcascade_eye.xml")
 
    cascade = cv.CascadeClassifier(cascade_fn)
    nested = cv.CascadeClassifier(nested_fn)
 
    cam = create_capture(video_src, fallback='synth:bg=../data/lena.jpg:noise=0.05')
 
    while True:
        ret, img = cam.read()
        gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
        gray = cv.equalizeHist(gray)
 
        t = clock()
        rects = detect(gray, cascade)
        vis = img.copy()
        draw_rects(vis, rects, (02550))
        if not nested.empty():
            for x1, y1, x2, y2 in rects:
                roi = gray[y1:y2, x1:x2]
                vis_roi = vis[y1:y2, x1:x2]
                subrects = detect(roi.copy(), nested)
                draw_rects(vis_roi, subrects, (25500))
        dt = clock() - t
 
        draw_str(vis, (2020), 'time: %.1f ms' % (dt*1000))
        cv.imshow('facedetect', vis)
 
        if cv.waitKey(5== 27:
            break
    cv.destroyAllWindows()
cs


반응형

http://wiki.freepascal.org/Android

'Programming > Pascal' 카테고리의 다른 글

[Lazarus] 컴파일/빌드 시 실행파일 용량 줄이기  (0) 2022.01.26
[Delphi] Form Caption RandomRange  (0) 2021.12.01
lazarus 툴에 대한 기본 정보  (0) 2018.02.16
lazarus wiki  (0) 2018.02.16
반응형

lazarus는

sourceforge.net의 오픈소스 프로젝트로서

 

델파이의 오픈소스 버전이라고 할 수 있습니다.

 

이전에는 freepascal 등의 오픈소스 프로젝트가 있었지만

 

Lazarus가 IDE RAD 툴로서는 첫시도라고 봅니다.

(제 주관적인 생각입니다.)

 

델파이를 공부하는 분들에게 많이 도움이 될 거 같네요..^^;

하지만 db활용이라던지, 인디 이용 등에 관해서는 저도 테스트 해보지 않아서

지원이 되는지는 모르겠습니다.

 

앞으로 계속 업데이트 되는 중이니까 많은 기대가 되는 건 사실입니다.

'Programming > Pascal' 카테고리의 다른 글

[Lazarus] 컴파일/빌드 시 실행파일 용량 줄이기  (0) 2022.01.26
[Delphi] Form Caption RandomRange  (0) 2021.12.01
Android freepascal  (0) 2018.02.16
lazarus wiki  (0) 2018.02.16
반응형
웹 프로그래밍의 이해

1)웹 프로그래밍의 의미

 우리가 거의 매일 사용하는 웹은 문자 그림 소리 동영상 등의 다양한 정보를 활용하여 전자 우편이나 자료검색
채팅등을 할 수 있는 인터넷 서비스이다.

 웹프로그램은 웹상에서 다양한 서비스를 하기 위해 만들어진 프로그램으로 웹 프로그래밍 언어를 사용하여 만든다.
웹 프로그래밍 언어를 사용하면 정적인 형태의 간단한 자기소개 웹 문서에서부터 게시판, 쇼핑몰, 영화관과같은 화려하고 동적인 형태의 웹 프로그램까지
다양하게 제작할 수 있다.

2)서버와 클라이언트
웹 프로그래밍을 하려면 먼저 서버와 클라이언트를 이해해야 한다. 서버와 클라이언트의 관계는 고객과 판매자의 관계와 유사한데, 가령 고객이 물건을 사기 위해
상점에 들어가면 고객은 판매자에게 필요한 물건을 요청하고 판매자는 고객의 요청에 따라 물건을 판매하는 것처럼 인터넷을 이용하는 경우에도 똑같은 원리가 적용
된다. 즉 고객에 해당되는 컴퓨터인 클라이언트가 판매자에 해당하는 서버에게 서비스를요청하면 서버는 고객이 요청한 서비스를 처리해 결과를 돌려주는 역할을
담당한다. 이때 서버는 서버가 제공하는 서비스의 종류에따라 웹서버, FTP서버,메일서버 등으로 구분한다.

*FTP서버 : 인터넷에서 컴퓨터 간의 파일을 주고받을 수 있는 서비스를 제공하는 서버

*메일서버 : 인터넷상의 메일을 주고받을 수 있도록 서비스를 제공하는 서버

3)웹 프로그램의 동작 과정

클라이언트와 서버 사이에서 웹 프로그램이 동작하는 과정을 살펴보면 다음과 같다.
1.클라이언트가 서버에게 필요한 서비스를 요청한다.
2.클라이언트의 서비스 요청 내용이 서버에 전달된다.
3.서버는 클라이언트가 요청한 서비스를 처리하여 결과를 클라이언트로 보낸다.
4.클라이언트는 서버가 보낸 서비스 처리 결과를 다운받아 웹 브라우저라는 소프트웨어를 이용해 확인한다.


웹브라우저 : 클라이언트 컴퓨터의 창이라고 할 수 있으며, 웹서버가 보내준 결과를 해석하여 클라이언트에게 보여준다.

웹 서버 : 웹 브라우저의 요청을 받아드리고, 요청된 웹 문서의 처리, 결과를 다시 웹 브라우저에게 알려 준다.

Ⅱ.웹 프로그래밍 언어

웹 프로그래밍 언어는 단순히 보여 주기만 할 수 있는 문서 작성용 HTML에서부터 동적인 기능과 상호 작용을 가능하게 하는 여러 가지 언어로 발전해왔다.
이러한 웹프로그래밍 언어에는 클라이언트 측에서 실행되는 프로그램을 만드는 언어와 서버 측에서 실행되는 프로그램을 만드는 언어로 분류한다.

클라이언트 측 언어란 사용자의 웹 브라우저에서 실행되는 웹프로그램을 만드는 언어로, HTML,자바스크립트,VB 스크립트 등이 있다.이러한 클라이언트 측 언어로
작성된 웹프로그램은 사용자가 요청한 서비스가 클라이언트로 모두 다운로드된후 클라이언트에서 실행되기 때문에 서버에 부담을 주지 않는다.

서버측 언어란 클라이언트의 요구에 의하여 서버에서 실행되는 웹 프로그램을 만드는 언어로, 로그인 처리, 게시판사용,예매 확인 등 양방향 으로 동작하는 프로그램
을 만드는데 사용되며, JSP,ASP,PHP등의 언어가 있다.

보통 웹 프로그래밍 언어라고하면 서버 측 언어를 의미한다.

HTML : 웹문서를 만드는데 사용되는 가장 기본적인 언어로,마크업언어(인터넷용 언어처럼 생각되는 경우도많지만, 논문 등의 문서구조를 나타내기위해서 만들어진 언어)
의 기본적인 기능에 하이퍼텍스트(사용자가 비순차적인 검색을 할 수 있도록 제공되는 텍스트,문서속의 특정 자료가 다른 자료나 데이터베이스와 연결되어있어
쉽게 원하는정보를 얻을수 있는것) 기능을 추가하였다. HTML은 정적인 문서를 만드는데 주로 사용한다.

자바스크립트 : 정적인 HTML에 동적인 기능을 추가하기 위해 개발한언어로,동적인 웹 문서 작업에 필요한 다양한 기능을 제공한다. 특정 운영체제에 대하여 제한은
받지 않지만, 채팅 사이트나 게임 등의 고급프로그래밍 작성은 불가능하다.

VB스크립트 : 인터넷 익스플로러의 기본 스크립트 언어로, 비주얼 베이직의 일부 기능을 웹 환경에서 사용할 수 있또록 하여 배우기가 쉬어 빠른시간안에 프로그램을
작성할 수 있다. 그러나 인터넷 익스플로러 이외의 웹브라우저에서는 거의 지원되지않는다는 문제점이있다.

JSP : 자바언어를 기본 문법으로 한 웹 프로그래밍 언어로, 특정 하드웨어나 운영체제상관없이 실행이가능하며 클라이언트에게 결과를 보여주는 부분을 분리하여 작성
할수 있어서 효율적인 작업이 가능하다.

ASP : 윈도 운영 체제에서 실행되는 언어로, 비주얼 베이직 언어를 기본 문법으로 사용한다.

PHP : c언어, 자바와 비슷한 문법 구조를 가지고 있으며, 적은 명령어로 웹프로그래밍이 가능하기 때문에 편리하다. 또 다양한 운영체제에서 사용이 가능하며,
데이터베이스를 활용할 수 있는 기능을 갖추고 있다.

Ⅲ.웹 사이트 개발 과정의 이해
웹사이트는 HTML, 자바스크립트, JSP, ASP등의 웹 프로그래밍 언어와 데이터베이스 프로그램, 기타 멀티미디어 자료등을 이용하여 만들어진다. 웹사이트의
기본적인 계획을 세운 후에 그 계획에 따라 체계적으로 제작되어야 한다. 
웹사이트 개발 과정은 보통 7 단계를 거치게 되는데, 단계별 작업 내용은 다음과 동일하다.

계획수립 → 분석 → 콘텐츠구성 → 정보설계 → 디자인 → 개발,제작 → 테스트,업로드


반응형

http://wiki.lazarus.freepascal.org/Main_Page/ko

'Programming > Pascal' 카테고리의 다른 글

[Lazarus] 컴파일/빌드 시 실행파일 용량 줄이기  (0) 2022.01.26
[Delphi] Form Caption RandomRange  (0) 2021.12.01
Android freepascal  (0) 2018.02.16
lazarus 툴에 대한 기본 정보  (0) 2018.02.16

+ Recent posts