Просто хочется сделать проще, без копирования, и прочего, получил, отрисовал в определнныйх полотнах QImagе, и выдал на экран.
...желательно не используя сигналы, а на прямую?
При взаимодействии 2 и более ниток "напрямую" ничего не делается. Так или иначе главной надо "забрать" имедж, и указатель здесь никак не поможет - все равно надо знать что имедж валиден, его можно рисовать. Др словами синхронизация все равно нужна. И вообще имплисит шара - фундаментальная фича Qt, напрасно Вы так небрежно к ней относитесь.
Оригинальные пиксели легко могут быть изменены через поинтер, полученный через QImage::scanLine (как чаще всего и делается), при этом никакой detach() не вызовется.
Только ручками, только хардкор
Даже если полезли в пыксели (о чем разговора не было) - передернуть затвор никто не мешал
C++ (Qt)
uchar* linePtr = img.scanLine(0); // тут detach, понятно
linePtr[0] = 0xff;
emit ImageChanged(img); // ушел сигнал...
linePtr = img.scanLine(0);
...