Агуулгын хүснэгт:
- Хангамж
- Алхам 1: Номын санг импортлох
- Алхам 2: Зам мөр үүсгэх
- Алхам 3: Өнгө, ханалт, үнэ цэнийн хувьд TrackBars үүсгэх
- Алхам 4: Зургийг хэрхэн уншиж, хэмжээг нь өөрчлөх вэ
- Алхам 5: Зурагт ашиглахын тулд Track Bar утгыг уншина уу
- Алхам 6: Зургийг харуулах, дээд ба доод хязгаарыг тохируулах
- Алхам 7: Одоо эцсийн шат
- Алхам 8: Эцсийн гаралт
Видео: OpenCV ашиглан Python дээр өнгө илрүүлэх: 8 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:01
Сайн уу? Энэхүү заавар нь openCV номын санг ашиглан python дээрх дүрсээс тодорхой өнгийг хэрхэн гаргаж авах талаар заавар өгөхөд ашиглагддаг. Хэрэв та энэ техникийг шинээр ашиглаж байгаа бол санаа зовох хэрэггүй, энэ гарын авлагын төгсгөлд та өөрийн өнгө илрүүлэх програмыг програмчлах боломжтой болно.
Дараахь функцууд эсвэл таны сурах техникийг бид хэлж чадна.
1. Зургийг хэрхэн унших
2. Track Bars хэрхэн үүсгэх
3. Замын зурвас ашиглан Hue, Saturation болон зургийн утгыг хэрхэн тохируулах вэ
4. Дараа нь таны эцсийн гаралт байх болно
Та миний хавсаргасан гаралтын видеог үзэх боломжтой.
Тиймээс эхэлцгээе
Хангамж
- Python 3
- openCV номын сан
- numpy номын сан
Алхам 1: Номын санг импортлох
Зураг нь үзүүлсэн шиг шар феррари хэлбэртэй бөгөөд бид энэ дүрснээс зөвхөн шар өнгийг гаргаж авахаар програмчлах болно
Эхний алхам бол манай номын санг импортлох явдал юм
1. OpenCV номын санг багтаасан болно. Үүнийг питон хэл дээр cv2 гэж нэрлэдэг
2. numpy номын санг np гэж оруулах. "As" нь бидэнд np гэж numpy хийх боломжийг олгодог тул дахин дахин numpy бичих шаардлагагүй болно
Алхам 2: Зам мөр үүсгэх
Track Bar нь зураг дээрх Hue, Saturation ба Value -ийн утгыг тохируулах зорилгоор бүтээгдсэн болно.
cv2.namedWindow ("TrackBars") Энэ мөрийн мөр нь шинэ гаралтын цонх үүсгэхэд ашиглагддаг бөгөөд цонхны нэрийг TrackBars хэлбэрээр өгдөг (Та хүссэн нэрээ өгч болно)
cv2.resizeWindow ("TrackBars", 600, 250) Энэ функц нь цонхны хэмжээг өөрчлөхөд хэрэглэгддэг. "TrackBars" нь аль цонхны хэмжээг өөрчлөхийг хүсч байгаа тул би TrackBars цонхны хэмжээг өөрчлөхийг хүссэн тул би энэ нэрийг бичсэн. Дараа нь хоёр бүхэл тоо байна. Эдгээр хоёр бүхэл тоо нь өргөн ба өндөр юм. Хэмжээг нь өөрчлөхийн тулд та эдгээр хоёр тоогоор тоглож болно
Алхам 3: Өнгө, ханалт, үнэ цэнийн хувьд TrackBars үүсгэх
Одоо бид өнгө, ханалт, үнэ цэнийн хувьд нийт 6 TrackBars үүсгэх болно. Тус бүр нь хамгийн багадаа 1, хамгийн ихдээ 1 гэсэн 2 байх болно. Бид openCV -ийн createTrackbar функцийг ашиглах болно. Эхлээд бид энэ функцын синтаксийг харах болно.
cv2.createTrackbar ("WINDOWNAME", "MAINWINDOWNAME", "RANGE"). Энэ нь ойлгомжгүй байж магадгүй, гэхдээ бид алхам бүрийг даван туулах болно гэж бүү санаа зов. OpenCV -д өнгө 179, ханалт 255, утга 255 байна гэдгийг нэг зүйлийг санаарай.
1. Hue min -д TrackBar үүсгэх:
cv2.createTrackbar ("Hue min", "TrackBars", 0, 179, хоосон)
Энэ Hue min-д trackbar нэр, TrackBars нь үндсэн цонх, 0 нь бидний гулсагч байх байрлал, 179 нь муж нь 0-179-ээс шилжих болно гэсэн үг юм.
2. Hue max -д зориулж TrackBar үүсгэх:
cv2.createTrackbar ("Hue max", "TrackBars", 179, 179, хоосон)
Энэ Hue max-д trackbar нэр, TrackBars нь үндсэн цонх, 179 нь бидний гулсагч байх байрлал, 179 нь хамгийн их хүрээ нь silder нь 179-0-ээс шилжих болно гэсэн үг юм.
3. Үүнтэй адилаар зурагт үзүүлсэн шиг min, sat max, val min, val max гэсэн алхмуудыг давтана
Цагаан дэвсгэртэй зураг нь гаралтын дүрс юм. Таны зам мөр ийм харагдах болно
Алхам 4: Зургийг хэрхэн уншиж, хэмжээг нь өөрчлөх вэ
cv2.imread () нь зургийг унших боломжийг олгодог. Нэг чухал зүйл бол таны зургийн байршил програм хадгалагдсан хавтсанд байх ёстой гэдгийг санах хэрэгтэй. Бид while циклийг оруулах болно, учир нь энэ нь зургийг уншиж дуустал ажиллах ёстой эсвэл нөхцөл үнэн болтол хэлж чадна
img = cv2.imread ("ferrari.jpg")
- Үүн дээр би дүрсийг хадгалж буй "img" гэсэн хувьсах нэрийг үүсгэсэн
- Cv2.imread дотор давхар ишлэл дотор зургийн нэрийг өргөтгөлөөр бичнэ үү
Зургийн хэмжээг өөрчлөхийн тулд бид cv2.resize функцийг ашиглах болно. Энэ хэсэг нь заавал биш, хэрэв та хэмжээг өөрчлөхийг хүсвэл энэ функцийг ашиглаж болно
Cv2.resize дотор эхлээд дүрс хадгалагдаж буй хувьсагчийн нэрийг бичээд дараа нь түүний өргөн ба өндрийг бичнэ
Алхам 5: Зурагт ашиглахын тулд Track Bar утгыг уншина уу
За, одоо бид trackbar bar -ийн утгыг унших гэж байгаа тул үүнийг зурган дээрээ ашиглах боломжтой болно. Бид cv2.getTrackbarPos () функцийг ашиглан утгыг авах болно.
Энэ хэсгээс эхэлье …
h_min = cv2.getTrackbarPos ("Hue min", "TrackBars")
Дээрх мэдэгдэлд би h_min хувьсагчийн нэрийг үүсгэж байгаа бөгөөд үүнд би Hue min -ийн утгыг хадгалах болно. Тиймээс cv2.getTrackbarPos -ийн 1 -р аргумент нь "Hue min" байх болно, учир нь би hue min -ийн утгыг хүсч байна (Үг үсэг нь createTrackbar функцтэй яг ижил байх ёстой), 2 -р аргумент нь түүний харьяалагддаг trackbar цонхны нэр байх болно.
- Дээрх зурагт үзүүлсэн шиг h_max болон бусад функцүүдийн хувьд ижил үйлдлийг давтаж, дараа нь print () ашиглан бүх утгыг хэвлэнэ үү.
- Гаралтыг хоёр дахь зурагт үзүүлэв. Энэ нь h_min, h_max, s_min, s_max, v_min, s_max утгуудыг хэвлэж байна.
Алхам 6: Зургийг харуулах, дээд ба доод хязгаарыг тохируулах
Одоо бидэнд өнгө, ханалт, үнэ цэнийн хамгийн бага ба хамгийн их утга байгаа бөгөөд энэ утгыг ашиглан зургийг шүүж, зургийн өнгөний гарцыг гаргах боломжтой болно.
Үүний тулд бид cv2.inRange функцийг ашиглан маск үүсгэх болно. Үүнээс өмнө бид өнгө, ханалт, үнэ цэнийн дээд ба доод хязгаарыг тогтоох болно
Тиймээс "доод" гэсэн хувьсагчийн нэрийг үүсгээд numpy массивын функцийг ашиглан 3 -ийн бүх хязгаарыг дараах байдлаар тохируулна уу
доод = np.array ([h_min, s_min, v_min])
Дээд талын хувьд ижил алхамыг давт
дээд = np.array ([h_max, s_max, v_max])
Одоо бид дараах байдлаар маск хийх болно
маск = cv2.inRange (хэмжээг өөрчлөх, доод, дээд) cv2.inRang дотор 1 -р аргумент нь миний эцсийн зургийг хадгалсан хувьсагч байх болно, 2 -р аргумент нь доод хязгаар, 3 -р аргумент нь дээд хязгаар байх болно.
Одоо бид үндсэн дүрс, маскыг үзүүлэх болно. Үзүүлэхийн тулд бид cv2.imshow () функцийг ашиглах болно
cv2.imshow ("img", хэмжээг өөрчлөх) Энэ нь үндсэн дүрсийг харуулах зорилготой юм. 1 -р аргумент бол таны хүссэн нэр өгч болох цонхны нэр, 2 -р аргумент бол миний харуулахыг хүссэн миний үндсэн зургийг хадгалсан хувьсагч юм.
Үүний нэгэн адил маск хийх алхмуудыг давтана уу
cv2.imshow ("Гаралт", маск)
Алхам 7: Одоо эцсийн шат
Эцсийн шатанд бид машины өнгийг гаргаж, дэлгэц дээр харуулах болно.
Би хувьсагчийн нэрийн үр дүнг бий болгосон. Дахин хэлэхэд та хүссэн нэрээ өгч болно. Тиймээс бид cv2.bitwise_and () функцийг ашиглах бөгөөд үүнд бид зургуудыг хамтад нь нэмж, шинэ дүрс үүсгэх болно. Хоёр зураг дээрх пикселүүд хаана байгаа ч гэсэн үүнийг тийм эсвэл "1" гэж авна.
үр дүн = cv2.bitwise_and (хэмжээг нь өөрчлөх, хэмжээг нь өөрчлөх, маск = маск)
- Энэ тохиолдолд 1 -р аргумент нь бидний дүр төрх болно
- Хоёрдахь аргумент нь бидний анхны зураг байх болно, гэхдээ дараа нь бидний өмнө хийсэн маск ашигласан болно
- Эцэст нь imshow функцийг ашиглан үр дүнг харуулна уу
Энэ сүүлийн алхамыг хуулж аваарай, энэ бол зүгээр л саатал бөгөөд гар дээрх "a" товчлуурыг дарж гаралтын цонхноос гарах боломжтой
Алхам 8: Эцсийн гаралт
Зөвлөмж болгож буй:
Өнгө илрүүлэх будаг машин: 4 алхам
Өнгө илрүүлэх будаг машин: Өнгө илрүүлэх будагны машин нь таны эргэн тойрон дахь өнгийг хуулбарлаж, тэдэнтэй зурах боломжийг олгодог. Хэрэв танд үндсэн өнгөний будаг байгаа бол RGB өнгөний мэдрэгч ашиглан хүссэн өнгөө мэдэрч, хольж болно. Гэхдээ тод өнгийн объектыг ашиглаарай гэдгийг санаарай
OpenCV ашиглан энгийн өнгө илрүүлэх: 6 алхам
OpenCV ашиглан энгийн өнгө илрүүлэх: Сайн байна уу! Өнөөдөр би OpenCV болон python ашиглан амьд видеоноос өнгийг олж илрүүлэх энгийн аргыг үзүүлэх гэж байна, үндсэндээ шаардлагатай өнгө нь арын фрэймд байгаа эсэхийг шалгана, харин OpenCV модулиудыг ашиглан тухайн бүсийг масклах болно
Arduino RGB өнгө сонгогч - Бодит амьдралын объектуудаас өнгө сонгох: 7 алхам (зурагтай)
Arduino RGB өнгө сонгогч - Бодит амьдрал дахь объектуудаас өнгө сонгох: Arduino дээр суурилсан RGB өнгө сонгогчийг ашиглан физик объектуудаас өнгө сонгоход хялбар бөгөөд ингэснээр компьютер эсвэл гар утсан дээрээ бодит амьдрал дээр харж буй өнгөө сэргээх боломжтой болно. Хямд TCS347 ашиглан объектын өнгийг скан хийх товчлуурыг дарахад л хангалттай
Олон талт дугуй ба OpenCV дээр суурилсан өнгө хянах робот: 6 алхам
Олон чиглэлтэй дугуй ба OpenCV дээр суурилсан өнгө хянах робот: Би өнгөний хяналтаа хэрэгжүүлэхийн тулд бүх чиглэлтэй дугуйны явах эд анги ашигладаг бөгөөд би OpenCVBot нэртэй гар утасны програм хангамж ашигладаг. Энд байгаа програм хангамж хөгжүүлэгчдийн ачаар танд баярлалаа.OpenCV Bot нь бодит цагийн аливаа объектыг зураг боловсруулах замаар олж илрүүлдэг
RGB LED ашиглан өнгө илрүүлэх: 4 алхам
RGB LED ашиглан өнгө илрүүлэх: Та объектын өнгийг илрүүлэх автомат аргыг хүсч байсан уу? Тухайн объект дээр тодорхой өнгийн гэрэл тусгаж, хичнээн их гэрэл тусаж байгааг харснаар тухайн объект ямар өнгөтэй болохыг мэдэх боломжтой болно. Жишээлбэл, хэрэв та улаан гэрэл асааж байвал