Improving the LowPassFilter to take advantage of the features made available by the voxel refactoring.
Also improved the test case.
This commit is contained in:
@ -58,29 +58,30 @@ void TestLowPassFilter::testExecute()
|
||||
|
||||
RawVolume<Density8> resultVolume(reg);
|
||||
|
||||
LowPassFilter< RawVolume<Density8>, RawVolume<Density8> > pass1(&volData, reg, &resultVolume, reg, 5);
|
||||
LowPassFilter< RawVolume<Density8>, RawVolume<Density8>, Density16 > lowPassfilter(&volData, reg, &resultVolume, reg, 5);
|
||||
|
||||
pass1.execute();
|
||||
//Test the normal implementation
|
||||
lowPassfilter.execute();
|
||||
QCOMPARE(resultVolume.getVoxelAt(0,0,0), Density8(4));
|
||||
QCOMPARE(resultVolume.getVoxelAt(1,1,1), Density8(21));
|
||||
QCOMPARE(resultVolume.getVoxelAt(2,2,2), Density8(10));
|
||||
QCOMPARE(resultVolume.getVoxelAt(3,3,3), Density8(21));
|
||||
QCOMPARE(resultVolume.getVoxelAt(4,4,4), Density8(10));
|
||||
QCOMPARE(resultVolume.getVoxelAt(5,5,5), Density8(21));
|
||||
QCOMPARE(resultVolume.getVoxelAt(6,6,6), Density8(10));
|
||||
QCOMPARE(resultVolume.getVoxelAt(7,7,7), Density8(4));
|
||||
|
||||
std::cout << "Input volume:" << std::endl;
|
||||
std::cout << "Voxel = " << static_cast<int>(volData.getVoxelAt(0,0,0).getDensity()) << std::endl; // 32
|
||||
std::cout << "Voxel = " << static_cast<int>(volData.getVoxelAt(1,1,1).getDensity()) << std::endl; // 0
|
||||
std::cout << "Voxel = " << static_cast<int>(volData.getVoxelAt(2,2,2).getDensity()) << std::endl; // 3
|
||||
std::cout << "Voxel = " << static_cast<int>(volData.getVoxelAt(3,3,3).getDensity()) << std::endl; // 0
|
||||
std::cout << "Voxel = " << static_cast<int>(volData.getVoxelAt(4,4,4).getDensity()) << std::endl; // 32
|
||||
std::cout << "Voxel = " << static_cast<int>(volData.getVoxelAt(5,5,5).getDensity()) << std::endl; // 0
|
||||
std::cout << "Voxel = " << static_cast<int>(volData.getVoxelAt(6,6,6).getDensity()) << std::endl; // 32
|
||||
std::cout << "Voxel = " << static_cast<int>(volData.getVoxelAt(7,7,7).getDensity()) << std::endl; // 0
|
||||
|
||||
std::cout << std::endl << "Output volume:" << std::endl;
|
||||
std::cout << "Voxel = " << static_cast<int>(resultVolume.getVoxelAt(0,0,0).getDensity()) << std::endl; // 4
|
||||
std::cout << "Voxel = " << static_cast<int>(resultVolume.getVoxelAt(1,1,1).getDensity()) << std::endl; // 21
|
||||
std::cout << "Voxel = " << static_cast<int>(resultVolume.getVoxelAt(2,2,2).getDensity()) << std::endl; // 10
|
||||
std::cout << "Voxel = " << static_cast<int>(resultVolume.getVoxelAt(3,3,3).getDensity()) << std::endl; // 21
|
||||
std::cout << "Voxel = " << static_cast<int>(resultVolume.getVoxelAt(4,4,4).getDensity()) << std::endl; // 10
|
||||
std::cout << "Voxel = " << static_cast<int>(resultVolume.getVoxelAt(5,5,5).getDensity()) << std::endl; // 21
|
||||
std::cout << "Voxel = " << static_cast<int>(resultVolume.getVoxelAt(6,6,6).getDensity()) << std::endl; // 10
|
||||
std::cout << "Voxel = " << static_cast<int>(resultVolume.getVoxelAt(7,7,7).getDensity()) << std::endl; // 4
|
||||
//Test the SAT implmentation
|
||||
//FIXME - Shouldn't the results be the same as the normal case?
|
||||
lowPassfilter.executeSAT();
|
||||
QCOMPARE(resultVolume.getVoxelAt(0,0,0), Density8(4));
|
||||
QCOMPARE(resultVolume.getVoxelAt(1,1,1), Density8(8));
|
||||
QCOMPARE(resultVolume.getVoxelAt(2,2,2), Density8(19));
|
||||
QCOMPARE(resultVolume.getVoxelAt(3,3,3), Density8(12));
|
||||
QCOMPARE(resultVolume.getVoxelAt(4,4,4), Density8(19));
|
||||
QCOMPARE(resultVolume.getVoxelAt(5,5,5), Density8(12));
|
||||
QCOMPARE(resultVolume.getVoxelAt(6,6,6), Density8(8));
|
||||
QCOMPARE(resultVolume.getVoxelAt(7,7,7), Density8(2));
|
||||
}
|
||||
|
||||
QTEST_MAIN(TestLowPassFilter)
|
||||
|
Reference in New Issue
Block a user