I use Imerba library to read DICOM files. I need acces to pixels so I can modify them in low level. Documentation says: "In order to access to the image's pixels you have to retrieve a data handler" and there's an example:
imbxUint32 rowSize, channelPixelSize, channelsNumber;
ptr<imebra::handlers::dataHandlerNumericBase> myHandler = presentationImage->getDataHandler(true, &rowSize, &channelPixelSize, &channelsNumber);
// Retrieve the image's size in pixels
imbxUint32 sizeX, sizeY;
presentationImage->getSize(&sizeX, &sizeY);
// Scan all the rows
imbxUint32 index(0);
for(imbxUint32 scanY = 0; scanY < sizeY; ++scanY)
{
// Scan all the columns
for(imbxUint32 scanX = 0; scanX < sizeX; ++scanX)
{
// Scan all the channels
for(imbxUint32 scanChannel = 0; scanChannel < channelsNumber; ++scanChannel)
{
imbxInt32 channelValue = myHandler->getSignedLong(index++);
// Do something with the channel's value
//--------------------------------------
}
}
} I need the presentationImage object pixels to be changed. I've tried to change it in the way like:
myHandler->setSignedLong(index,255);
but it doesn't change presentationImage object and I'm now sure way. The Imebra documentation has only three examples and the classes and methods description is a bit raw. Google knows nothing as well. How to change pixel values in this object?