일부 이미지 처리 기능이있는 Qt5.4 기반 프로그램이 있습니다. 나는 QCamera
과 videoSurface
(QAbstractVideoSurface
에서 파생 됨)을 사용하여 VideoFrames를 얻습니다. 그것은 Windows에서 잘 작동합니다.Qt QML 카메라 - C++ QImage (안드로이드)
하지만 지금 내 앱의 Android 버전이 필요합니다. QCamera
이 Android에서 작동하지 않는다는 것을 알았습니다. 하지만 QML 카메라 예제는 문제없이 Android에서 실행됩니다.
그래서 QML로 응용 프로그램을 다시 작성하기로 결정했습니다. 주요 문제 : C++에서 QML 카메라 표면에 액세스 할 수 없습니다.
void myVideoOutput::setSource(QObject *source)
{
qDebug() << Q_FUNC_INFO << source;
if (source == m_source.data())
return;
m_source = source;
if (m_source) {
const QMetaObject *metaObject = m_source.data()->metaObject();
QStringList properties;
for(int i = metaObject->propertyOffset(); i <metaObject>propertyCount(); ++i)
properties << QString::fromLatin1(metaObject->property(i).name());
qDebug() << properties;
}
.....
emit sourceChanged();
}
이 코드는 속성에 대한 액세스 권한을 부여합니다. 하지만 videoSurface에이 방법으로 액세스 할 수 없습니다 (QCamera
사용). 어떻게 QML 카메라가 작동하는지 궁금하네요? 그것은 QCamera
을 기반으로합니까?
- 는 C++에서 가공 후의 이미지 QML 카메라를 사용할 수있다 : 나는 그래서 나는이 개 질문이 ...
QDeclarativeCamera
에서QCamera *m_camera
참조? 실용 예제는 매우 가치있을 것입니다. - Qt에서 Android 카메라로 비디오를 캡처하는 다른 방법을 알고 계십니까?
에 최소한의 작업 예제를 만들었습니다. GLTextureHandle을 처리하는 OpenGL 코드를 강조하고 싶습니다. http://code.qt.io/cgit/qt/qtmultimedia.git/tree/examples/multimedia/video/qmlvideofilter_opencl/rgbframehelper.h –
@WaldezJunior 첫 번째 해결 방법은 아닙니다. Qt5.9.1에서 작동하며, setSource는 항상 false를 반환합니다. – StereoMatching