Hi:
I’m running this code, where im_ is just a ofxcvFloatImage:
handCandidate.im_.resetROI();
handCandidate.im_.drawROI(20,20);
handCandidate.im_.setROI(noiseCoord.x,noiseCoord.y,noiseSize,noiseSize);
float* noiseData;
noiseData = handCandidate.im_.getRoiPixelsAsFloats();
for(int l=0;l<noiseSize*noiseSize-1;l++){
int z_ = (int)( ( (*noiseData)*1000 ) );
if(z_>=1000) z_=1000;
if(z_<0) z_=0;
noiseData++;
noiseMatrix[z_]++;
}
And it works perfectly, however if I run the same but with the two initial lines at the end, which should be the same:
handCandidate.im_.setROI(noiseCoord.x,noiseCoord.y,noiseSize,noiseSize);
float* noiseData;
noiseData = handCandidate.im_.getRoiPixelsAsFloats();
for(int l=0;l<noiseSize*noiseSize-1;l++){
int z_ = (int)( ( (*noiseData)*1000 ) );
if(z_>=1000) z_=1000;
if(z_<0) z_=0;
noiseData++;
noiseMatrix[z_]++;
}
handCandidate.im_.resetROI();
handCandidate.im_.drawROI(20,20);
I got a Segmentation fault (core dumped).
However if I delete this line:
noiseData = handCandidate.im_.getRoiPixelsAsFloats();
Everything works again, it’s like if getRoiPixelsAsFloats() change something.
Best regards