2016-11-28 2 views

Répondre

0

Vous pouvez utiliser la division du mat.

Par exemple dans une image BGR (je vais vous montrer en C++ parce que je ne suis pas en opencv4Android):

cv::Mat src = cv::imread("some.png"); 
cv::Mat planes[3]; 
cv::split(src, planes); 

Si vous avez un BGR vous auriez maintenant la R-Plane dans le planes[2].

Une autre possibilité est d'obtenir juste les avions par exemple Buffer (Java Android maintenant):

/* Get your Image somehow */ 
Image.Plane Y = img.getPlanes[0]; 
Image.Plane U = img.getPlanes[1]; 
Image.Plane V = img.getPlanes[2]; 

//now just for Y e.g. 
ByteBuffer yBuffer = Y.getBuffer(); 
byte[] yBytes = new Byte[yBuffer.remaining()]; 
yBuffer.get(yBytes); 

//read the byte data into a cv::Mat