Open Invertor c++图像处理

读取图像

 1、根据图像名称读取图像

const SbString imageToLoad = "$OIVHOME/examples/data/ImageViz/autorad.tif";
SoRef<SoFileDataAdapter> imageAdapter = new SoFileDataAdapter();
imageAdapter->fileName.setValue(imageToLoad);

2、创建图像内存

// 2- Create a Memory Data adapter containing a 512x512 image
// 2.1- Instanciate a CPU buffer object
SbVec4i32 imageSize( 512, 512, 1, 1 );
SoRef<SoCpuBufferObject> imageBuffer = new SoCpuBufferObject();
imageBuffer->setSize( imageSize[0]*imageSize[1]*sizeof( unsigned char ) );

// 2.2- Define a synthetic square in this buffer object
unsigned char* imageData = static_cast<unsigned char*>( imageBuffer->map( SoCpuBufferObject::SET ) );
int borderX = imageSize[0] / 4; // Vertical border around the square
int borderY = imageSize[1] / 4; // Horizontal border around the square
// Loop on image rows
for ( int i = 0; i < imageSize[0]; ++i )
{
// Loop on image columns
    for ( int j = 0; j < imageSize[1]; ++j )
      {
        if ( ( i >= borderX ) && ( i <= imageSize[0] - borderX ) && ( j >= borderY ) && ( j <= imageSize[1] - borderY ) )
          imageData[j * imageSize[0] + i] = 255; // Value inside the square
        else
          imageData[j * imageSize[0] + i] = 128; // Background value
      }
    }
imageBuffer->unmap();

// 2.3- Instanciate a memory image adapter containing the data of the buffer object
SoRef<SoMemoryDataAdapter> memoryImage = SoMemoryDataAdapter::createMemoryDataAdapter(
    imageSize, SbImageDataType( 1, SbDataType::UNSIGNED_BYTE ),
    SoMemoryDataAdapter::CONTIGUOUS_PER_PIXEL , imageBuffer.ptr()
);

3、下载am图像文件

 #define INPUT_DATASET "$OIVHOME/examples/data/ImageViz/medicalFoot.binary.am"
 SoRef<SoFileDataAdapter> imageAdapter = new SoFileDataAdapter();
 imageAdapter->fileName = INPUT_DATASET;
 imageAdapter->interpretation = SoImageDataAdapter::BINARY;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值