# data[].attributes.body
import cv2

cam = cv2.VideoCapture(0)

cam.set(3,1280)

cam.set(4,720)

while True:

ret_val, img = cam.read()

cv2.imshow("Cam Viewer",img)

if cv2.waitKey(1) == 27:

break

# data[].attributes.body
https://stickode.tistory.com/799

# data[].attributes.body
import cv2

cap = cv2.VideoCapture(0)

while (cap.isOpened()):

ret,img = cap.read()

cv2.imshow('my win',img)

img_canny = cv2.Canny(img, 30, 70)

cv2.imshow('canny',img_canny)

if cv2.waitKey(1) & 0xFF == ord('q'):

break

cap.release()

cv2.destroyAllWindows()

# data[].attributes.body
import numpy as np

# 비디오 캡처 객체 생성 (웹캠 또는 동영상 파일)

cap = cv2.VideoCapture(0) # 0은 기본 웹캠, 파일 경로를 넣으면 영상 파일 사용 가능

while cap.isOpened():

ret, frame = cap.read()

if not ret:

break

# 그레이스케일 변환

gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

# 엣지 검출 (Canny)

edges = cv2.Canny(gray, 50, 150, apertureSize=3)

# 허프 변환을 이용한 직선 검출

lines = cv2.HoughLines(edges, 1, np.pi / 180, 150)

if lines is not None:

for line in lines:

rho, theta = line[0]

a = np.cos(theta)

b = np.sin(theta)

x0 = a * rho

y0 = b * rho

x1 = int(x0 + 1000 * (-b))

y1 = int(y0 + 1000 * (a))

x2 = int(x0 - 1000 * (-b))

y2 = int(y0 - 1000 * (a))

cv2.line(frame, (x1, y1), (x2, y2), (0, 0, 255), 2)

# 결과 프레임 출력

cv2.imshow('Hough Line Detection', frame)

# ESC 키를 누르면 종료

if cv2.waitKey(1) & 0xFF == 27:

break

# 리소스 해제

cap.release()

cv2.destroyAllWindows()

# data[].attributes.attachment_link.title
딥러닝 수업량 유연화(딥러닝)

# data[].attributes.body
참여하세요

# data[].attributes.body
import cv2

import numpy as np

# numpy 배열로 hsv 형식의 색 범위를 정해줍니다.

# 노란색으로 범위를 정해주었습니다.

lower = np.array([15, 150, 20])

upper = np.array([35, 255, 255])

# 카메라를 연결합니다.

webcam_video = cv2.VideoCapture(0)

while True:

# 카메라의 프레임을 읽고 가져옵니다.

success, video = webcam_video.read()

# RGB 형식의 카메라 프레임을 HSV 형식으로 변환합니다.

img = cv2.cvtColor(video, cv2.COLOR_BGR2HSV)

# 정한 범위 내의 색을 표시해줍니다.

mask = cv2.inRange(img, lower, upper)

# 표시된 것에서 윤곽선을 찾습니다.

mask_contours, hierarchy = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# 모든 윤곽선의 위치를 찾습니다.

if len(mask_contours) != 0:

for mask_contour in mask_contours:

if cv2.contourArea(mask_contour) > 500:

x, y, w, h = cv2.boundingRect(mask_contour)

# 사각형을 그려줍니다.

cv2.rectangle(video, (x, y), (x + w, y + h), (0, 0, 255), 3)

cv2.imshow("mask image", mask)

cv2.imshow("window", video)

# ESC 키를 누르면 프로그램이 종료됩니다.

if cv2.waitKey(1) & 0xFF == 27:

break

webcam_video.release()

cv2.destroyAllWindows()

# data[].attributes.body
import cv2

import numpy as np

# 빨간색 HSV 범위 (두 구간)

red_lower1 = np.array([0, 100, 100])

red_upper1 = np.array([10, 255, 255])

red_lower2 = np.array([160, 100, 100])

red_upper2 = np.array([179, 255, 255])

# 파란색 HSV 범위

blue_lower = np.array([100, 150, 50])

blue_upper = np.array([130, 255, 255])

# 카메라 연결

webcam_video = cv2.VideoCapture(0)

while True:

success, frame = webcam_video.read()

if not success:

break

# HSV 변환

hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

# 빨간색 마스크

red_mask1 = cv2.inRange(hsv, red_lower1, red_upper1)

red_mask2 = cv2.inRange(hsv, red_lower2, red_upper2)

red_mask = cv2.bitwise_or(red_mask1, red_mask2)

# 파란색 마스크

blue_mask = cv2.inRange(hsv, blue_lower, blue_upper)

# 윤곽선 처리 함수

def draw_contours_with_label(mask, color_bgr, label):

contours, = cv2.findContours(mask, cv2.RETREXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

for contour in contours:

if cv2.contourArea(contour) > 500:

x, y, w, h = cv2.boundingRect(contour)

# 사각형 그리기

cv2.rectangle(frame, (x, y), (x + w, y + h), color_bgr, 2)

# 사각형 왼쪽 위에 텍스트 표시

cv2.putText(frame, label, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, color_bgr, 2)

# 색상별로 처리

draw_contours_with_label(red_mask, (0, 0, 255), "red light") # 빨간색

draw_contours_with_label(blue_mask, (255, 0, 0), "blue light") # 파란색

# 병합된 마스크 (보기용)

combined_mask = cv2.bitwise_or(red_mask, blue_mask)

# 출력

cv2.imshow("mask image", combined_mask)

cv2.imshow("window", frame)

# ESC 누르면 종료

if cv2.waitKey(1) & 0xFF == 27:

break

webcam_video.release()

cv2.destroyAllWindows()

# data[].attributes.headline
아두이노 자율주행차 코딩

# data[].attributes.subject
아두이노 자율주행차 코딩

# data[].attributes.body
int wlf = 9, wlb = 10;

int wrf = 6, wrb = 5;

int trig = 2, echo = 3;

void setup() {

// put your setup code here, to run once:

Serial.begin(9600);

pinMode(trig, OUTPUT);

pinMode(echo, OUTPUT);

pinMode(wlf, OUTPUT);

pinMode(wlb, OUTPUT);

pinMode(wrf, OUTPUT);

pinMode(wrb, OUTPUT);

}

void loop() {

// put your main code here, to run repeatedly:

float distance, duration;

digitalWrite(trig, HIGH);

delay(1);

digitalWrite(trig, LOW);

duration = pulseIn(echo, HIGH);

distance = ((float)(340*duration)/10000)/2;

if(distance > 15) {

analogWrite(wlf,180);

analogWrite(wlb,0);

analogWrite(wrf, 180);

analogWrite(wrb, 0);

}else{

int rd = random(2);

int delayrd = random(200, 500);

if(rd == 1){

analogWrite(wlf, 0);

analogWrite(wlb, 150);

analogWrite(wrf, 180);

analogWrite(wrb, 0);

}else{

analogWrite(wlf, 150);

analogWrite(wlb, 0);

analogWrite(wrf, 0);

analogWrite(wrb, 180);

}

delay(delayrd);

}

}