>QImage img = QImage(filename, 0);
この時点でfilenameがimgに読み込まれるので、
>img.load(filename);
これがなくても同じ結果になる

ほんとにbackgroundImageに代入も初期化もしてないならbackgroundImageはnullなイメージのはず
つまり描画はスキップされるはずだから、何かしら描画されるのは正常じゃない動作だよ
描画の直前にQImage::isNullとかQImage::saveとか使ってbackgroundImageが本当にnullかどうか調べてみるといい

>for(int i=0; i<img.height(); i++){
>for(int j=0; j<img.width(); j++){
あと、これheightとwidth逆