I had the same issue when I was trying to get text drawn into an fbo into greyscale opencv images. I wanted to have each image fitted to the text and it was slanting weirdly when it was dynamically figuring out the size of the fbo from the size of the text. I tried out different formats for both the ofFbo and the ofPixels to no avail.
I looks like the problem is when casting from the fbo to pixels and it only comes up when you have specific usually odd dimension 551w X 231h produces the problem where as 1000 x 1000 does not.
My work around was to set it to some a good rounded off dimension and then crop the pixels before adding them to opencv image like so. In my .h:
ofxCvColorImage original;
ofxCvGrayscaleImage toBlur;
ofTrueTypeFont font;
ofFbo drawTextin;
ofPixels tempPix;
int padding;
In my .cpp:
void fadeTextIn::setup(string text, int millis, int size){
font.loadFont("PT.ttf", size);
ofRectangle box = font.getStringBoundingBox(text, 0, 0);
padding = 20;
int width = box.width+padding;
int height = box.height+padding;
drawTextin.allocate(1000, 1000, GL_RGB);
tempPix.allocate(1000, 1000,OF_PIXELS_RGB);
original.allocate(width, height);
toBlur.allocate(width, height);
drawTextin.begin();
ofClear(0,0,0);
ofBackground(0,0,0);
font.drawString(text,0+ padding/2,box.height+ padding/2);
drawTextin.end();
drawTextin.readToPixels(tempPix);
tempPix.crop(0, 0, width, height);
original.setFromPixels(tempPix);
toBlur = original;
}