Nesne tanımaya dayalı olarak video akışında QML dikdörtgenlerini görüntüleme

0

Soru

Qt Video Genel Bakışında açıklandığı gibi bir video akışım var MyVideoProducer mekanik. Kaynak görüntüler analiz edilir ve bağlı bileşenlerin (x,y,genişlik,yükseklik) bir listesine sahibim ve videoda dikdörtgenleri kaplamak istiyorum.

Bunu, qml'ye dikdörtgen koordinatlarının bir listesini göndererek ve dikdörtgenleri yerleştirmesini sağlayarak yapabilir miyim yoksa kendi bindirme görüntülerimi oluşturmam gerekir mi?

QtQuick parçacık sistemine baktım ama uymuyor gibi görünüyor. Diğer sorular Qt/Qml tarafından yönetilen dikdörtgenin düzenine sahiptir, ancak dikdörtgenin vizyon boru hattının C++ ' da belirlediği koordinatlara göre yerleştirilmesine ve QML ön ucuna gönderilmesine ihtiyacım var. Eski / video kareleriyle ilgili olacaklar.

Bir örnek var, ancak bindirme video ile ilgisi yok. Sanırım senkronize edilen bir kaplamaya ihtiyacım var onNewVideoContentReceived(). QML, dikdörtgenlerin herhangi bir listesinin video ile nasıl kolayca senkronize edileceğini belirleyemez.

computer-vision qml qt qt5
2021-11-22 18:51:32
1

En iyi cevabı

1

Dikdörtgenleri kendim RGBA biçiminde çizmek için bir kameradan çıkarılan orijinal arabellek oluşturmayı değiştirdim. Video karesinin nesne konum verileriyle eşitleme sorununu önler. Alfa kullanmadım, sadece pikselleri değiştirdim. İçeriğim için, video alanına karşı kutu sayısı büyük değildi. Alfa dikdörtgenleri ve çok sayıda nesneyle, bir gpu'yu dahil etmek daha verimli olabilir. Aslında, CCL sınırlı bölgeyi değil, sabit boyutlu kareleri kullanabilirsiniz ve bu bir GPU ile önemli ölçüde daha hızlı olabilir.

Bir QML çözümü daha zarif olurdu, ancak bu çözüm işe yarıyor.


Alternatif seçenekler şunlardırQVideoFrame::setMetaData bu, ilişkilendirmenin açık ve çerçeveye bağlı olması için CCL QRect listesini çerçeveye bağlayabilir. Yöntem onNewVideoContentReceived() of the MyVideoProducer dikdörtgenleri C++ ' dan işleyebilir.

Başka bir seçenek de, sunulan görüntülere ek veri eklemek için orijinal arabelleği değiştirecek olan qabstractvideofilter'dır. Bu, QML ön ucu aracılığıyla etkinleştirilmesi/devre dışı bırakılması kolaydır.

Tüm çözümler C++ ' ya dayanır, bu nedenle qml'de renklendirmeyi vb.Değiştirmek kolay değildir. Örneğin, nesnenin 'erkek', 'dişi', 'kedi', 'araç' vb.Gibi tanınmış bir özelliği varsa, QML vurgulamayı uygun şekilde güncelleyebilir ve nesne türlerinin muhasebesini koruyabilir.

2021-11-26 16:16:56

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................