2025년 9월 6일 토요일

9.06- 파이슨 API 설치하기 / 삼성 스마트 씽 / AI 기술요소 /

 파이썬에서 API를 설치하는 가장 일반적인 방법은 pip 명령어를 사용하여 해당 API를 제공하는 라이브러리를 설치하는 것입니다. 예를 들어, 특정 API를 사용하기 위한 파이썬 SDK인 google-genai를 설치하려면 터미널에서 pip install google-genai 명령을 실행하면 됩니다. 설치 전에 가상 환경을 사용하는 것이 좋으며, 설치 후에는 import 문을 사용하여 파이썬 스크립트에서 해당 라이브러리를 불러와 API 기능을 사용할 수 있습니다. 

1. 터미널 또는 명령 프롬프트 열기 

운영체제에 따라 터미널(macOS, Linux) 또는 명령 프롬프트(Windows)를 엽니다.

Anaconda Prompt 와 같은 통합 환경을 사용할 수도 있습니다.

2. 가상 환경 생성 및 활성화 (권장) 

파이썬 프로젝트별로 독립적인 환경을 유지하기 위해 가상 환경을 만드는 것이 좋습니다.

python -m venv myenv (또는 python3 -m venv myenv)

source myenv/bin/activate (macOS/Linux) 또는 myenv\Scripts\activate (Windows)

가상 환경이 활성화되면 프롬프트 앞에 (myenv) 와 같이 가상 환경 이름이 표시됩니다.

3. pip를 사용하여 API 라이브러리 설치

설치하고자 하는 API의 라이브러리 이름을 확인합니다. 일반적으로 pip install [라이브러리_이름] 형식으로 설치합니다. 

예시:

pip install google-genai (Google Gemini API 사용 시) 

pip install openai (OpenAI API 사용 시) 

pip install pa5 (예시의 또 다른 라이브러리) 

pip는 파이썬 패키지 인덱스(PyPI)에서 패키지를 다운로드하여 설치합니다. 

4. 설치 확인 및 API 사용 

파이썬 스크립트에서 import 문을 사용하여 설치된 라이브러리를 불러옵니다.

예시:

Python


    import google.generativeai as genai


    # API 설정 및 사용

    genai.configure(api_key="YOUR_API_KEY")

라이브러리 내의 함수나 클래스를 사용하여 API를 호출하고 기능을 실행할 수 있습니다. 

9.06. 생활 지혜- nortion 무료버전 / 램픽 커넥터 / 올드팝 #영화ost #60년대가요/스타일시트 종류 / 명곡 8선

 '계피로 만든 양초가 모기를 쫓아낸다!' 

https://youtube.com/shorts/mu-3xBeal9o?si=0r80xPhZGHPiIGhj 

#Shorts 로프 엉킴 없이 사용 방법 the use of ropes



길어서 불편했던 바지, 내 손으로 딱 맞게 줄이기

Awesome trick with a plastic bottle handle. #shorts #diy

 #nortion 무료버전

외래어 16선 #영어 #영어공부 #korean #영어회화 - https://youtube.com/shorts/jgcTIQzzbcI?si=Us8m_gKJgKm2LdKu

 3.7V Battery Charger Circuit Diagram| battery charger| #battery #charger... - https://youtube.com/shorts/0F2J8yldjTI?si=qXOpa2bIq3GRvo6c

조정기님은 티맵 운전점수 94점으로 상위 20%예요!

내 운전점수와 랭킹이 궁금하다면?

https://tmap.life/91f6f41f

K3565 MOSFET으로 만든 12V 모터 속도조절기 (DIY) #shorts #diy #dcmotor - https://youtube.com/shorts/YpaOfWNwTVA?si=SmMqTWGtphb3hgXG

I planted in the beverage bottles have grown a lot of rhizomes and green... - https://youtube.com/shorts/O1eKaZbPlog?si=9V_MxqDKj1vhzgt5

 2% 부족할 때 쓰는 맛의 비밀 15가지 - https://youtube.com/shorts/Wf2Ki2hkZq8?si=oXoMAlqeJM-tg8u-

전기기능사필기, 기출문제(17) - https://youtube.com/shorts/hY2T9X-Tt_U?si=ww9aX13pE1EyVWqI

 이재명정부가 복지행정을 막~바꿔버렸습니다.#이재명정부 #복지행정 - https://youtube.com/shorts/dCiojuKZ3Z4?si=B2WRxtjaMyTFDtTq

국세청이 제일 많이 잡는 거래 7가지 - https://youtube.com/shorts/VyYzIBotQSk?si=HIJhevoeUCm9rVX2

 Adjustable voltage regulator | #voltage #regular #viral #electronic #ele... - https://youtube.com/shorts/n-VPUrzlS4s?si=6nGgmnccYUeg50ty

 If you don't want to wear pants anymore, you can change the style like this - https://youtube.com/shorts/U51QF0JMhPw?si=bAxYJ06fTaMyqeZB


 "지프리스타일"은 "지브리 스타일"을 잘못 표기한 것으로 보이며, 일본의 유명한 애니메이션 스튜디오 지브리(Studio Ghibli)의 독특한 예술적 스타일을 의미합니다. 지브리 스타일은 미야자키 하야오 감독과 같은 제작자들의 작품에서 나타나는 따뜻하고 감성적인 색감, 손그림 느낌의 부드러운 선, 몽환적인 배경, 풍부한 자연 묘사, 그리고 감정이 풍부한 캐릭터 표현으로 특징지어집니다. 예를 들어, *센과 치히로의 행방불명*이나 *하울의 움직이는 성* 같은 작품에서 볼 수 있는 독특한 비주얼과 분위기를 말합니다.


최근에는 AI 기술, 특히 챗GPT와 같은 도구를 활용해 일상 사진이나 이미지를 지브리 스타일로 변환하는 것이 SNS에서 유행하고 있습니다. 이는 개인 사진이나 풍경을 지브리 애니메이션의 감성적인 분위기로 바꾸는 작업을 의미하며, 주로 감성적이고 따뜻한 콘텐츠 제작에 활용됩니다. 다만, 이 과정에서 저작권 이슈나 윤리적 논란이 제기될 수 있으므로, 상업적 사용 시 주의가 필...

#notebookLM

스타일시트 종류 - Google 검색 - https://www.google.com/search?client=ms-android-samsung-rvo1&hl=ko&q=%EC%8A%A4%ED%83%80%EC%9D%BC%EC%8B%9C%ED%8A%B8%20%EC%A2%85%EB%A5%98

#지프리스타일이외의. 종류

 #랭그래프

 #그래프 종류

https://m.blog.naver.com/PostView.naver?blogId=stargirl2017&logNo=223841355289&proxyReferer=&noTrackingCode=true

 랭그래프란? LangGraph 쉬운설명 - 랭그래프란? LangGraph 쉬운설명 https://share.google/7geK2Pc5KUm7dG5gM

이터널 클램프 #핸드메이드 #웰딩 - https://youtube.com/shorts/r5QYy4d9o8k?si=AkNqe4oDNyqcKi8h

서울에 설치된 25곳 구의 역사와 이름에 얽힌 이야기ㅣOrigins of the name of the district in Seoul - https://youtube.com/watch?v=VMYHiPijO-M&si=ZUPH6sZGZq6QPBe-

폴모리아, 알랭 들롱.. 그 시절 라디오에서 흘러나오던 바로 그 연주곡 (광고없음) #칸초네 #올드팝 #영화ost #60년대가요 ... - https://youtube.com/watch?v=EkU9TQJIRXs&si=yuRsEVBL7YIXoxn0

 컴퓨터 기초 키보드 사용법 총정리 - https://youtube.com/watch?v=F_P22AJrqvw&si=Al5W0kQBK0fl_ZE1

수십억 명의 사람들이 이 놀라운 수제 도구에 대해 모르고 있어요!! 똑똑한 DIY 팁 - https://youtube.com/watch?v=wKIfIaDMEWw&si=Zwc0D6NjTY1Ky4sp

 (무료) 포토샵 이제 필요 없습니다. 아무도 안 알려주는 '나노바나나' 사용법, 딱 5분만 투자하세요! - https://youtube.com/watch?v=PMmiqT4PS4Y&si=xIPPWweuFEOMiQ_t

#글루건 사용법

#램픽 커넥터

https://m.blog.naver.com/vittzlighting/223405919419

 #꽂음형 커넥터

[연주음악] 멈출 수 없는 - 벤처스 명곡 8선 - https://youtube.com/watch?v=4NUMhbnAIyk&si=_B6Uo8r-7xtm497L


A great Trick from an experienced Electrician with a Light Bulb and a Ja... - https://youtube.com/shorts/OvzEGrD03uY?si=1LdL4VDyPLEwbGTN

단상과 3상전기의 차이(전기실무) - https://youtube.com/shorts/FfWe9bP5_7Y?si=INVOWW9ZUK3IRNAB

수리비 아끼는 꿀팁, 페트병 하나면 됩니다 1탄 - https://youtube.com/shorts/NzVmpxosYt0?si=VzWzZsF_IFQUoIKy

20 Litre Danacana ile Otomatik Tavuk Suluk Yapımı #chicken #diychickenco... - https://youtube.com/shorts/0gXJ5LaervI?si=N7oTl8-kmLMLmyC4

: #베이킹소다

건조대 대체 #쿠팡추천템 #꿀팁 - https://youtube.com/shorts/rzx6jz2zSzU?si=b5-8GeWc85y6jTKD

Dude Made a DUSTPAN & an Oil Can from ONE Jug?! 🤯 Mind=Blown! #diyhacks ... - https://youtube.com/shorts/mgVFk7VN4Ug?si=mWd-ja0icafjtoIX

99%가 모르는 생활 문제 해결 기술들 - https://youtube.com/shorts/uTQ2K0VRDjM?si=trl38oGuH38UNoc1

 99%가 모르는 생활 문제 해결 기술들 - https://youtube.com/shorts/uTQ2K0VRDjM?si=0qAqah14feZrQt7T

 이거 알면 절대 페트병 못 버립니다 - https://youtube.com/shorts/7R8EK_BD4qE?si=aYFqjAEBT7HN9a4n

 #simple_inventions #اختراعات #experiment #ابتكار #smartphone #diy - https://youtube.com/shorts/G-AUrzit1z8?si=zk1ZfaA8U_UHWBQw

8만원을 아끼는 수세미 활용 레시피 - https://youtube.com/shorts/qmTTKCztMrk?si=iI_47rnlVsZ70ENf

싱크대에 우유를 쏟는 놀라운 이유 - https://youtube.com/shorts/KeEV5uWjToo?si=ias2_CHkaPwZ0sHl

Variation of soap bottles, transformation of self made flower pots, use ... - https://youtube.com/shorts/zJnNwaSL6Lg?si=FvfMNPxaOBavu-Zp

 Variation of soap bottles, transformation of self made flower pots, use ... - https://youtube.com/shorts/q0cw4PXJbLU?si=3Qo40QvAzlz0DKnk


바지끈 정리 초꿀팁 - https://youtube.com/shorts/aZNV9ILNUio?si=ThAwIW2rCBnzyg7m

 "편리하게🫑사용해 보세요!" @프로필 구매링크 22클릭! #생활꿀팁 #꿀팁 - https://youtube.com/shorts/dpYiRommn20?si=ks7z6aJALvq7UW4b


절대 안풀리는 신발끈 이렇게 묶기          🤗🤩👟 - https://youtube.com/shorts/Y68Q8Va1gA0?si=zxkv9iRa9FfG5-qG

Bobbin Amazing new Idea NEW TRICK || #bobbin #shorts #worklifeshorts #ne... - https://youtube.com/shorts/ZcB5QKF8DTA?si=uWXXzFN8MTRuGRb5

 Bottle Gym Hack: Rope Knots Stronger Than Your Biceps 💪🥤🤣 - https://youtube.com/shorts/ZNMNfyAjlMs?si=cm831Xoxk0JWYt9n

Furniture design of solid wood multifunctional bed and desk - https://youtube.com/shorts/UHB9PpdAE8k?si=QcWlaU5Hb7AvNW7E

두 개의 둥근 나무 막대를 연결하는 고급 기술입니다. #diy #woodworking - https://youtube.com/shorts/m_1yLzkyI0k?si=huCzJGJHY4fOzY-P


9.06 - 인공지능 비전 인식 기반 협동로봇제어 / 유니버셜 로봇(Cobot) /

  인공지능 비전 인식 기반 협동로봇제어- 초소형 협동로봇  MC-270 M5 / 김유현

2025년 9월 5일 금요일

블록코딩 용어해

 

각 용어들이 초등학생도 이해할 수 있도록 쉽고 상세하게 설명해 드리겠습니다.


---


### Logic (논리)

- 컴퓨터가 문제를 어떻게 생각하고 해결할지 방법을 정하는 거예요.

- 예를 들어, "만약 비가 오면 우산을 써라"라는 규칙처럼 조건을 만들어요.


### Loops (반복)

- 같은 일을 여러 번 하도록 하는 기능이에요.

- 예를 들어, 10번 숫자를 세거나, 5번 "안녕"이라고 말하는 것을 쉽게 할 수 있어요.


### Text (문자)

- 글자나 말을 컴퓨터에 알려주는 거예요.

- 이름을 저장하거나, 메시지를 보내는 데 사용할 수 있어요.


### Math (수학)

- 더하기, 빼기, 곱하기, 나누기 같은 계산을 하는 기능이에요.

- 숫자 문제를 컴퓨터가 이해하고 계산하는 방법이에요.


### List (목록)

- 여러 개의 물건이나 숫자를 한 줄로 모아서 정리하는 거예요.

- 예를 들어, 친구 이름을 모두 한 목록에 적는 것과 같아요.


### Variables (변수)

- 컴퓨터 안에서 정보를 잠깐 저장하는 상자 같은 거예요.

- 예를 들어, 오늘의 온도를 저장했다가 나중에 다시 꺼낼 수 있어요.


### Functions (함수)

- 어떤 일을 한 번에 할 수 있도록 미리 정해 놓은 작은 프로그램이에요.

- 예를 들어, "자동차 경적 울리기" 같은 기능을 만들면 버튼 누를 때마다 경적이 울러요.


---


### Time (시간)

- 시간을 알려주거나, 기다리는 기능이에요.

- 예를 들어, 5초 동안 기다렸다가 다음 일을 하는 것이 가능해요.


### Raspi-GPIO

- 라즈베리파이라는 작은 컴퓨터와 주변 기계를 연결하는 방법이에요.

- 전등 불을 켜거나, 센서를 사용할 때 쓰여요.


---


### Basic (기본)

- 아주 기초적인 명령어들을 모아 놓은 곳이에요.

- 컴퓨터에게 "시작해!" 혹은 "멈춰!" 같은 간단한 지시를 할 때 쓰여요.


### ATOM IO

- 컴퓨터와 외부 기계가 서로 신호를 주고받는 연결 부분이에요.

- 기계가 어떤 상태인지 컴퓨터가 알 수 있게 해줘요.


### Status (상태)

- 기계나 프로그램이 지금 어떤 상태인지 알려줘요.

- 예를 들어, 로봇이 움직이는 중인지 멈춰 있는지 알려줘요.


### MDI Control

- 로봇을 직접 조종하는 특별한 방법이에요.

- 자동차 핸들을 직접 잡고 운전하는 것처럼요.


### JOG Control

- 로봇을 조금씩 움직이게 하는 기능이에요.

- 조그만 움직임을 아주 정확히 조절할 수 있어요.


### Setting (설정)

- 로봇이나 프로그램이 잘 작동하도록 필요한 조건이나 환경을 정하는 곳이에요.


### Servo (서보)

- 정밀하게 움직임을 조절하는 작은 모터예요.

- 로봇 팔이나 틈새 조절에 꼭 필요해요.


### Gripper (그리퍼)

- 로봇이 물건을 잡는 손 같은 부분이에요.


### Coord Control (좌표 제어)

- 로봇을 원하는 위치로 정확히 움직이는 방법이에요.

- 예를 들어, 로봇 팔이 책상 위 특정 자리에 가도록 하는 것처럼요.


### MyCobot320

- 작은 로봇 팔 이름이에요.

- 교육용이나 간단한 작업에 쓰이는 로봇 팔이에요.


---


필요한 다른 설명이나 더 쉬운 예시가 있으면 언제든 말씀해 주세요!

9.05 각 프로그램 용도 및 기능 요약//

 

사진에서 확인되는 설치 프로그램과 환경에 대해 안내드리겠습니다.


---


### 설치된 주요 프로그램과 환경

1. **운영체제:** 우분투(Ubuntu) 22.04 LTS (리눅스 배포판)

   - 안정성과 보안성이 강화된 대표적인 리눅스 운영체제입니다.

2. **브라우저:** 파이어폭스 (Mozilla Firefox)

   - 오픈 소스 웹 브라우저로, 빠르고 보안 기능이 우수하여 리눅스 환경에 자주 사용됩니다.

3. **무선 네트워크 설정 창**

   - Wi-Fi 네트워크 인증 설정 GUI (그래픽 사용자 인터페이스)가 활성화된 상태입니다.

   - 사용 중인 Wi-Fi 보안 방식은 "WPA & WPA2 Enterprise"이고, 내부 인증 방법은 "MSCHAPv2"입니다.

4. **시스템 설정 앱**

   - Ubuntu 내장 설정 메뉴이며, 네트워크, 블루투스, 배경화면, 디스플레이 등 시스템 제어 용도로 사용됩니다.

5. **기타 아이콘 및 익숙한 앱**

   - LibreOffice, 도움말, 터미널, 파일관리 등 일반적인 우분투 기본 프로그램으로 보입니다.


---


### 각 프로그램 용도 및 기능 요약


| 프로그램명          | 용도 및 기능 설명                                        |

|-------------------|--------------------------------------------------|

| 우분투 22.04 LTS     | 안정적인 서버 및 데스크톱 운영체제, 개발 및 일반 작업에 사용           |

| 파이어폭스           | 웹 서핑, 웹 애플리케이션 접근, 보안강화된 인터넷 사용             |

| 무선 네트워크 설정 (Wi-Fi) | 복잡한 인증 프로토콜 지원 가능한 무선 LAN 접속 설정, 기업 및 학교 등 EAP 지원 환경 연결에 적합 |

| 시스템 설정 앱       | PC의 각종 하드웨어 및 소프트웨어 설정 관리                        |

| LibreOffice         | 오피스 문서 작성 및 편집                                      |


---


### 설치가 필요한 주요 소프트웨어 다운로드 URL


1. **우분투 (Ubuntu) 22.04 LTS**

   - https://ubuntu.com/download/desktop

2. **파이어폭스 (Mozilla Firefox)**

   - https://www.mozilla.org/ko/firefox/new/

3. **LibreOffice**

   - https://www.libreoffice.org/download/download/

4. **네트워크 관리자 GUI (GNOME Control Center)**

   - 우분투 기본 포함, 리눅스 배포판 별 설치 방법 상이

   - 추가 설치시: `sudo apt install gnome-control-center` 명령어 사용


---


필요하신 구체 소프트웨어나 설정 방법이 있으시면 추가로 안내해 드리겠습니다.

9.05 명도차 기반 차선 인식

https://song-log.tistory.com/22 

명도차 기반 차선 인식

차선 추종 주행

  • 좌우 차선을 찾아내어 차선을 벗어나지 않게끔 주행한다.

차선을찾기 위한 작업

  1. Image Read - 카메라 영상신호를 이미지로 읽기
  2. GrayScale - 흑백 이미지로 변환
  3. Gaussian Blur - 노이즈 제거
  4. HSV - Binary - HSV 기반으로 이진화 처리
  5. ROI - 관심영역 잘라내기

차선 검출을 위한 영상 처리

  • gray.py - 컬러(bgr8) 이미지를 흑백(grayscale) 이미지로 변환
import cv2
img = cv2.imread('sample.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

cv2.imshow('gray', gray)
cv2.waitKey(1000)
  • blur.py - 차선 인식에 방해가 되는 노이즈 제거
import cv2
img = cv2.imread('sample.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5, 5), 0)

cv2.imshow('blur', blur)
cv2.waitKey(1000)

노이즈 제거 - Gaussian Blur

  • 각 픽셀에 5X5 윈도우를 올려 놓고 그 영역 안에 포함되는 값을 모두 더한 뒤 이것을 25로 나누어 인접한 점들의 밝기 산술평균을 구하는 방식으로 노이즈를 제거
  • 윈도우의 크기를 크게 할수록 더 부드러운 blur를 얻게 됨.
  • line.py - HSV 기반 이진화 방법으로 차선을 추출
import cv2
import numpy as np

img = cv2.imread('sample.jpg')
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

lower_white = np.array([0,0,70])
upper_white = np.array([131,255,255])

mask = cv2.inRange(hsv, lower_white,upper_white)e

cv2.imshow('line' mask)
cv2.waitKey()

line.py 실행결과

  • canny.py - 외곽선을 추출해서 차선을 찾을 수도 있음(Canny Edge Detector)
import cv2
img = cv2.imread('sample.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5,5), 0)
edge = cv2.Canny(blur, 20, 190)   # lower/upper threshld

cv2.imshow('edge', edge)
cv2.waitKey()

canny,py 실행결과

  • nonzero.py - 사각형 안에 있는 흰색 점의 개수를 세서 일정 개수 이상이면 녹색으로 표시
import cv2
import numpy as np

image = cv2.imread('sample.png')
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

lower_white = np.array([0,0,70])
upper_white = np.array([131,255,255])

mask = cv2.inRange(hsv, lower_white,upper_white)

xx = 20
while True:
    area = mask[430:450, xx:xx+15]
    if cv2.countNonZero(area) > 200:
        image = cv2.rectangle(image,(xx,430), (xx+15,450),(0,255,0),3)
    else:
        image = cv2.rectangle(image,(xx,430),(xx+15,450),(255,0,0),3)
    xx = xx + 20
    if xx > 640:
        break

cv2.imshow('countNonZero', image)
cv2.waitKey()

nonzero.py 실행결과

카메라 영상에서 차선 검출하기

  • 트랙 영상에서 특정 영역을 ROI로 설정하여 차선위치를 검출
    • BGR -> HSV -> 이진화
  • 검출된 차선을 녹색 사각형으로 표시하기
    • 이진화된 이미지를 BGR로 변환하여 색상을 가지는 사각형이 표시될 수 있도록
  • 관심영역 ROI 설정 (동영상 파일 프레임 크기 : 640X480)
    • 세로 좌표 430 ~ 450 영역(차량 바로 앞의 차선), 가로 0200, 440640 (왼쪽과 오른쪽 차선을 발견하기 위한 구간)

  • 영역내 흰색 픽셀 개수를 기준으로 차선 인식
    • 20X10 중 80%(160개) 이상이 흰색이면 차선으로 간주

 

#!/usr/bin/env python3

import cv2, time
import numpy as np

cap = cv2.VideoCapture('xycar_track1.mp4')

threshold_60 = 60  # 이진화에 이용할 명도 하한
width_640 = 640
scan_width_200, scan_height_20 = 200, 20  # 영역의 가로와 세로 크기
lmid_200, rmid_440 = scan_width_200, width_640 - scan_width_200 # 왼쪽, 오른쪽 검사가 끝날 가로 좌표
area_width_20, area_height_10 = 20, 10
vertical_430 = 430 # ROI 설정을 위한 세로 좌표(위쪽 끝)
row_begin_5 = (scan_height_20 - area_height_10) // 2
row_end_15 = row_begin_5 + area_height_10
pixel_threshold_160 = 0.8 * area_width_20 * area_height_10

while True:
	ret, frame = cap.read()
	if not ret:
		break
	if cv2.waitKey(1) & 0XFF == 27:
		break

	roi = frame[vertical_430:vertical_430 + scan_height_20, :]
	frame = cv2.rectangle(frame, (0, vertical_430), (width_640 - 1, vertical_430 + scan_height_20), (255, 0, 0), 3)  # 설정된 ROI 둘레에 파란색 사각형을 그림

	hsv = cv2.cvtColor(roi, cv2.COLOR_BGR2HSV) # 이진화작업

	lbound = np.array([0,0,threshold_60], dtype=np.uint8)
	ubound = np.array([131, 255, 255], dtype=np.uint8)

	bin = cv2.inRange(hsv, lbound, ubound)
	view = cv2.cvtColor(bin, cv2.COLOR_GRAY2BGR) # 초록색 사각형을 그리기위해 BGR 변환
	
	left, right = -1, -1

	for l in range(area_width_20, lmid_200):
		area = bin[row_begin_5:row_end_15, l - area_width_20:l]
		if cv2.countNonZero(area) > pixel_threshold_160:
			left = l
			break

	for r in range(width_640 - area_width_20, rmid_440, -1):
		area = bin[row_begin_5:row_end_15, r:r + area_width_20]
		if cv2.countNonZero(area) > pixel_threshold_160:
			right = r
			break

	if left != -1:
		lsquare = cv2.rectangle(view,
					(left - area_width_20, row_begin_5),
					(left, row_end_15),
					(0, 255, 0), 3)
	else:
		print("Lost left line")  # 왼쪽 차선이 검출되었으면 잘라낸 ROI 이미지에 녹색 사각형을 그림
	
	if right != -1:
		rsquare = cv2.rectangle(view,
					(right, row_begin_5),
					(right + area_width_20, row_end_15),
					(0, 255, 0), 3)
	else:
		print("Lost right line") # 오른쪽 차선이 검출되었으면 잘라낸 ROI 이미지에 녹색 사각형을 그림
	
	cv2.imshow("origin", frame) # 파란사각형
	cv2.imshow("view", view)  # ROI 잘라내어 이진화한 영상

	hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
	lbound = np.array([0,0,threshold_60], dtype=np.uint8)
	ubound = np.array([131, 255,255], dtype=np.uint8)

	hsv = cv2.inRange(hsv, lbound, ubound)
	cv2.imshow("hsv", hsv) # 카메라 영상을 이진화한 영상

	time.sleep(0.1)

cap.release()
cv2.destroyAllWindows()

line_find.py  싫행결과

 

브런치스토리- 마크다운

https://brunch.co.kr/@bobbyryu/54 


https://brunch.co.kr/@bobbyryu/131





9.05 센서 정보를 가져오기 위한 스레드 / 차선 추출을 위한 대표적인 색 공간에는 HSV, HLS, YUV

앤시스 실습_(2) / 구조해석절차

 다운로드 방법(영문) - https://www.ansys.com/ko-kr/academic/students Ansys Student Versions | Free Student Software Downloads https://www.ansys.com/...