Агуулгын хүснэгт:
- Алхам 1: Танигдсан объект дээр тэгш өнцөгт зур
- Алхам 2: Объект хөдөлж буй замыг хайж олоорой
- Алхам 3: Хоёр кодыг нэгтгэх
Видео: Opencv объектын хяналт: 3 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:01
Хөдөлгөөнт объектыг илрүүлэх нь компьютерийн алсын хараа, дүрс боловсруулахад ашигладаг техник юм. Видео бичлэгээс дараалсан олон фрэймийг янз бүрийн аргаар харьцуулж, хөдөлж буй объект илрүүлсэн эсэхийг тодорхойлох боломжтой.
Хөдлөх объект илрүүлэлтийг видео тандалт, үйл ажиллагааг таних, замын нөхцөл байдлын хяналт, нисэх онгоцны буудлын аюулгүй байдал, далайн хил дагуух хамгаалалтын хяналт гэх мэт өргөн хүрээний програмуудад ашигласан болно.
Хөдөлж буй объект илрүүлэлт гэдэг нь тухайн газар, бүс нутаг дахь объектын биет хөдөлгөөнийг таних явдал юм. [2] Хөдөлж буй объектууд болон суурин газар, бүс нутгуудын хооронд сегментчилэл хийснээр хөдөлж буй объектуудын хөдөлгөөнийг хянаж, дараа нь шинжлэх боломжтой болно. Үүнд хүрэхийн тулд видеог нэг хүрээ дээр бүтээсэн бүтэц гэж үзье. Хөдөлгөөнт объектын илрүүлэлт нь видео хүрээ бүрт эсвэл хөдөлж буй зорилт нь видеоны анхны дүр төрхийг харуулах үед л урд талын хөдөлж буй зорилгыг олох явдал юм.
Би Opnecv болон Python хослолыг ашиглан обьектуудыг өнгө дээр үндэслэн илрүүлэх, хянах болно
Алхам 1: Танигдсан объект дээр тэгш өнцөгт зур
Хэрэв таны компьютерт python эсвэл opencv байхгүй бол доорх зааврыг дагана уу
Энд python код байна:
cv2import numpy -ийг np болгон импортлох
cap = cv2. VideoCapture (0)
үнэн байхад:
_, frame = cap.read () hsv = cv2.cvtColor (хүрээ, cv2. COLOR_BGR2HSV)
доод_ шар = np.матриц
дээд шар
yellow_mask = cv2.inRange (hsv, доод_ шар, дээд_шар)
(_, контур, _) = cv2.findContours (шар маск, cv2. RETR_TREE, cv2. CHAIN_APPROX_SIMPLE)
контурын хувьд:
талбай = cv2.contourArea (контур)
хэрэв (талбай> 800):
x, y, w, h = cv2.boundingRect (contour) frame = cv2. rectangle (frame, (x, y), (x+w, y+h), (0, 0, 255), 10)
cv2.imshow ("дагах", хүрээ)
k = cv2.waitKey (5) & 0XFF
хэрэв k == 27: завсарлага
cv2.destroyAllWindows ()
cap.release ()
Алхам 2: Объект хөдөлж буй замыг хайж олоорой
замыг мөрдөхийн тулд:
i -ийн хувьд (1, len (center_points)): b = random.randint (230, 255) g = random.randint (100, 255) r = random.randint (100, 255) if math.sqrt (((center_points [i - 1] [0] - center_points [0]) ** 2) + ((center_points [i - 1] [1] - center_points [1]) ** 2)) <= 50: cv2. мөр (хүрээ, төвийн_оноо [i - 1], төвийн_оноо , (b, g, r), 4)
Алхам 3: Хоёр кодыг нэгтгэх
Би хоёуланг нь хоёуланг нь нэгтгэх болно
cv2import numpy -ийг np импортоор цуглуулгаас санамсаргүй байдлаар импортлох
cap = cv2. VideoCapture (1)
# Объект зочилсон бүх цэгийг хянахын тулд center_points = deque ()
үнэн байхад:
# Хүрээг уншиж, эргүүлээрэй _, frame = cap.read () frame = cv2.flip (frame, 1)
# Хүрээг бага зэрэг бүдгэрүүлээрэй
blur_frame = cv2. GaussianBlur (хүрээ, (7, 7), 0)
# BGR -ээс HSV өнгөний формат руу хөрвүүлэх
hsv = cv2.cvtColor (blur_frame, cv2. COLOR_BGR2HSV)
# Илрүүлэхийн тулд hsv өнгөний доод ба дээд хүрээг тодорхойлно уу. Энд цэнхэр
доод_хэнхэр = np.мөрөл ([100, 50, 50]) дээд_хэнхэр = np.мөрөл
# Эллипс цөм хийх
цөм = cv2.getStructuringElement (cv2. MORPH_ELLIPSE, (15, 15))
# Нээлтийн морф (элэгдэл, дараа нь тэлэлт)
маск = cv2.morphologyEx (маск, cv2. MORPH_OPEN, цөм)
# Бүх хэлбэрийг хайж олох
контур, шатлал = cv2.findContours (mask.copy (), cv2. RETR_LIST, cv2. CHAIN_APPROX_SIMPLE) [-2:]
хэрэв len (контур)> 0:
# Хамгийн том контурыг олоорой хамгийн том_контур = хамгийн их (контур, түлхүүр = cv2.contourArea)
# Контурын төвийг олж, дүүрсэн тойрог зур
мөч = cv2.moments (хамгийн том_контур) centre_of_contour = (int (мөч ['m10'] / мөч ['m00']), int (мөч ['m01'] / мөч ['m00'])) cv2. тойрог (хүрээ, centre_of_contour, 5, (0, 0, 255), -1)
# Контурыг дугуйлангаар холбоно уу
эллипс = cv2.fitEllipse (хамгийн том_контур) cv2.ellipse (хүрээ, эллипс, (0, 255, 255), 2)
# Контурын төв хэсгийг хадгалж, бид үүнийг хянах шугам зурдаг
center_points. appendleft (төвийн_нүүр)
# Контурын төв цэгүүдээс шугам зур
i -ийн хувьд (1, len (center_points)): b = random.randint (230, 255) g = random.randint (100, 255) r = random.randint (100, 255) if math.sqrt (((center_points [i - 1] [0] - center_points [0]) ** 2) + ((center_points [i - 1] [1] - center_points [1]) ** 2)) <= 50: cv2. мөр (хүрээ, төвийн_оноо [i - 1], төвийн_оноо , (b, g, r), 4)
cv2.imshow ('анхны', хүрээ)
cv2.imshow ('маск', маск)
k = cv2.waitKey (5) & 0xFF
хэрэв k == 27: завсарлага
cv2.destroyAllWindows ()
cap.release ()
Зөвлөмж болгож буй:
Arduino ашиглан алсын объектын мэдрэгч: 7 алхам
Arduino ашиглан алсын объектын мэдрэгч: Өнөө үед үйлдвэрлэгчид, хөгжүүлэгчид төслийн прототипийг хурдацтай хөгжүүлэхийн тулд Arduino -г илүүд үздэг. Arduino бол ашиглахад хялбар техник хангамж, програм хангамж дээр суурилсан нээлттэй эхийн электроникийн платформ юм. Arduino нь маш сайн хэрэглэгчийн нийгэмлэгтэй. Энэ нь
Микро: бит MU харааны мэдрэгч - Объектын хяналт: 7 алхам
Бичил: битийн MU харааны мэдрэгч - объектын хяналт: Тиймээс энэхүү зааварчилгаанд бид энэхүү зааварчилгаанд суулгасан ухаалаг машиныг програмчилж эхлэх бөгөөд энэ зааварт MU харааны мэдрэгч суурилуулсан болно. жаахан объект ажиглахад хялбар байдаг тул
Өнгө илрүүлэхэд суурилсан объектын хяналт: 10 алхам
Өнгө илрүүлэхэд суурилсан объектын хяналт: Өгөгдөл Би энэ төслийг Raspberry PI ашиглан зураг боловсруулж, CV нээх талаар сурсан. Энэ төслийг илүү сонирхолтой болгохын тулд би хоёр SG90 Servo мотор, камер суурилуулсан. Нэг мотор нь хэвтээ чиглэлд, хоёр дахь нь босоо чиглэлд хөдөлдөг байсан
Raspberry Pi - Автономит Марс Ровер нь OpenCV объектын хяналт: 7 алхам (зурагтай)
Raspberry Pi - Автономит Марс Ровер нь OpenCV объектыг хянах боломжтой: Raspberry Pi 3, CV -ийг нээлттэй таних, хэт авианы мэдрэгч, тогтмол гүйдлийн хөдөлгүүрээр ажилладаг. Энэхүү ровер нь бэлтгэгдсэн аливаа объектоо хянаж, ямар ч газар хөдлөх боломжтой
Эргэлтийн тэнхлэг бүхий объектын хянах камерын гулсагч. RoboClaw DC мотор хянагч ба Arduino дээр 3D хэвлэсэн ба барьсан: 5 алхам (зурагтай)
Эргэлтийн тэнхлэг бүхий объектын хянах камерын гулсагч. RoboClaw DC Motor Controller & Arduino дээр 3D Хэвлэсэн ба Баригдсан: Видео бүтээх сонирхлоо DIY-тэй хослуулахаас хойш энэ төсөл бол миний хамгийн дуртай төслүүдийн нэг юм. Би киног үзэхийн тулд камер дэлгэцээр гүйлгэж байгаа кинонуудын киноны дүрсийг үргэлж харж, дуурайхыг хүсдэг байсан