X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=libctsim%2Fctndicom.cpp;h=f9a311bb2175364e1b9d752973192fc13885022d;hp=02a4ed2da10073da89d6ea2a24df288e66ffc580;hb=c013e05de59f13e6df9f7a697648316699f9371a;hpb=20cc5536a0f941d2f04958e24af9985ac935f0d7 diff --git a/libctsim/ctndicom.cpp b/libctsim/ctndicom.cpp index 02a4ed2..f9a311b 100644 --- a/libctsim/ctndicom.cpp +++ b/libctsim/ctndicom.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: ctndicom.cpp,v 1.8 2001/03/07 16:52:52 kevin Exp $ +** $Id: ctndicom.cpp,v 1.9 2001/03/07 17:33:38 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -154,7 +154,7 @@ DicomImporter::loadImage(unsigned short iNRows, unsigned short iNCols, unsigned if (iMaskLength > 8) iMaskLength -= 8; unsigned int iMask = (1 << iMaskLength) - 1; - for (int iy = iNRows - 1; iy >= 0; iy--) { + for (int iy = 0; iy < iNRows; iy++) { for (int ix = 0; ix < iNCols; ix++) { if (iBitsAllocated == 8) { unsigned char cV = pRawPixels[iy * iNRows + ix]; @@ -164,7 +164,7 @@ DicomImporter::loadImage(unsigned short iNRows, unsigned short iNCols, unsigned unsigned char cV1 = pRawPixels[lBase]; unsigned char cV2 = pRawPixels[lBase+1] & iMask; int iV = cV1 + (cV2 << 8); - v[ix][iy] = iV * dRescaleSlope + dRescaleIntercept; + v[ix][iNRows - 1 - iy] = iV * dRescaleSlope + dRescaleIntercept; } } } @@ -284,7 +284,7 @@ DicomExporter::createDicomObject() dWidth = 1E-7; double dScale = 65535. / dWidth; - double dRescaleIntercept = -dMin; + double dRescaleIntercept = dMin; double dRescaleSlope = 1 / dScale; char szRescaleIntercept[17]; char szRescaleSlope[17]; @@ -394,10 +394,10 @@ DicomExporter::createDicomObject() elemPixelData.d.ot = pRawPixels; ImageFileArray v = m_pImageFile->getArray(); - for (int iy = iNRows - 1; iy >= 0; iy--) { + for (int iy = 0; iy < iNRows; iy++) { for (int ix = 0; ix < iNCols; ix++) { unsigned long lBase = (iy * iNRows + ix) * 2; - unsigned int iValue = nearest(dScale * (v[ix][iy] - dMin)); + unsigned int iValue = nearest(dScale * (v[ix][iNRows - 1 - iy] - dMin)); pRawPixels[lBase] = iValue & 0xFF; pRawPixels[lBase+1] = (iValue & 0xFF00) >> 8; }