당신의 첫 번째 실제 프로젝트 – 실시간 에지 검출 및 녹화

발행: (2026년 1월 1일 오전 02:00 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

Cover image for Your First Real Project – Live Edge Detection with Recording

왜 이것이 중요한가

에지 검출은 진지한 컴퓨터 비전에서의 “헬로 월드”입니다 – 파라미터를 튜닝하고, 깨끗한 라인을 찾아다니며, 순수 OpenCV 설정이 얼마나 많은 시간을 낭비하는지 깨닫게 되는 곳이죠.

순수 GoCV만 사용한다면 다음과 같은 작업에 수십 줄을 쓰게 됩니다:

  • 카메라 캡처 루프
  • 윈도우 생성
  • Mat 관리(그리고 불가피한 메모리 누수)
  • 키보드 처리
  • 녹화 로직

GoCVKit은 이 모든 것을 무료로 제공해 줍니다. 여러분은 파이프라인에만 집중하면 됩니다.

실습: 에지 디텍터 만들기

프로젝트 설정

# 아직 하지 않았다면
mkdir gocvkit-edge && cd gocvkit-edge
go mod init edge-demo
go get github.com/Elliot727/gocvkit

main.go

package main

import (
    "log"
    "github.com/Elliot727/gocvkit"
)

func main() {
    app, err := gocvkit.NewApp("config.toml")
    if err != nil {
        log.Fatal(err)
    }
    defer app.Close()
    app.Run(nil)
}

config.toml

[app]
window_name = "GoCVKit – Live Edge Detection"
record = true                  # 처리된 비디오를 자동으로 저장
output = "edge_detection.mp4"  # 선택 사항: 사용자 지정 파일명

[camera]
device_id = 0
# file = "demo.mp4"            # 대신 비디오 파일을 사용하려면 주석 해제

[stream]
enabled = false                # 지금은 끈 상태 – 나중에 켤 수 있음

[[pipeline.steps]]
name = "Grayscale"

[[pipeline.steps]]
name = "GaussianBlur"
kernel = 9
sigma = 1.8

[[pipeline.steps]]
name = "Canny"
low = 50
high = 150

앱 실행

go run .

다음과 같은 라이브 에지‑디텍션 창이 나타납니다:

  • 깔끔한 Canny 에지
  • f 키를 눌러 FPS 오버레이 토글
  • 자동으로 녹화 시작 (edge_detection.mp4)
  • config.toml의 값을 수정 → 저장 → 즉시 업데이트 (Week #2 덕분!)

레벨 업

부드러운 에지를 위해 블러 강화

kernel = 15
sigma = 3

더 부드러운 에지

low = 30
high = 100

잡음을 정리하기 위해 형태학 적용

[[pipeline.steps]]
name = "Dilate"
kernel = 3
iterations = 1

녹화 실시간 토글

config.toml에서 record = false 로 바꾸고 저장하세요.

보너스: 프레임 콜백으로 간단한 오버레이 추가

app.Run(func(frame *gocv.Mat) {
    // 최종 처리된 프레임에서 실행
    gocv.PutText(frame, "Low: 50  High: 150", image.Pt(10, 30),
        gocv.FontHersheyPlain, 1.5, gocv.NewScalar(255, 255, 255, 0), 2)
})

(한 번 재컴파일하면 됩니다 – 이제 문자열을 바꾸거나 나중에 설정 파일로 옮겨도 텍스트를 핫‑리로드할 수 있습니다.)

전문가 팁

  • 녹화 파일이 너무 커지면 자동으로 파일을 회전시켜 줍니다 – 수동 관리가 필요 없습니다.
  • Esc 또는 q 키를 눌러 정상적으로 종료하면 리소스가 정리됩니다.
  • 웹캠이 없나요? file = "demo.mp4" 주석을 해제해 비디오 파일로 전환하세요.

직접 해보기

위의 config.toml을 복사하고 프로그램을 실행한 뒤 마음껏 실험해 보세요. 깨뜨리고, 실시간으로 고치고, 속도를 체감해 보세요.

가장 좋아하는 에지‑디텍션 튜닝은 무엇인가요? 굵고 선명한 라인 vs. 부드러운 윤곽선? 댓글에 남겨 주세요!

Back to Blog

관련 글

더 보기 »

RGB LED 사이드퀘스트 💡

markdown !Jennifer Davis https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%...

Mendex: 내가 만드는 이유

소개 안녕하세요 여러분. 오늘은 제가 누구인지, 무엇을 만들고 있는지, 그리고 그 이유를 공유하고 싶습니다. 초기 경력과 번아웃 저는 개발자로서 17년 동안 경력을 시작했습니다.