Plutôt que de traiter, c'est juste du java
Après avoir posté, j'ai remarqué que le contenu de Mat sera négatif, donc j'aurais dû utiliser un tableau int au lieu d'un tableau d'octets ... Mat.get () est surchargé ...
import org.opencv.core.*;
import org.opencv.highgui.*;
VideoCapture capture;
void setup(){
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
capture = new VideoCapture(0);
fullScreen();
}
void draw(){
background(0);
if (capture.isOpened()) {
Mat video = new Mat();
capture.read(video);
byte [] b;
b = new byte[(int)video.size().height * (int)video.size().width*3];
video.get(0,0,b);
PImage img = createImage((int)video.size().width,(int)video.size().height,ARGB);
for(int i=0;i<(int)video.size().width;i++){
for(int j=0;j<(int)video.size().height;j++){
int p = (i+j*(int)video.size().width)*3;
img.set(i,j,color(fix(b[p+2]),fix(b[p+1]),fix(b[p+0])));
}
}
image(img, 0, 0, (int)video.size().width, (int)video.size().height);
}
}
int fix(int val){
if(val>-1)return val;
else{
return 256+val;
}
}
référence ・ Traitement de base de cv :: Mat ・ Utilisation d'OpenCV avec le traitement Qiita (suite)
Recommended Posts