[ITK-users] Is this a bug ?
Cyril Mory
cyril.mory at creatis.insa-lyon.fr
Fri Nov 4 10:26:31 EDT 2016
Hello, ITK users,
I've encountered a behavior with vnl_matrix, and I'm wondering whether
it is a bug or a feature. The following code outputs differents results:
#include <iostream>
#include <vnl_vector.h>
#include <vnl_matrix.h>
int main()
{
vnl_matrix<double> matrix(2, 2);
matrix.put(0, 0, 4);
matrix.put(0, 1, 3);
matrix.put(1, 0, 2);
matrix.put(1, 1, 1);
// Display the matrix
std::cout << "Matrix" << std::endl;
std::cout << matrix << std::endl;
// Display the first row of the matrix,
vnl_vector<double> matrixRow;
matrixRow = matrix.get_row(0);
std::cout << "First row, stored in a vnl_vector" << std::endl;
std::cout << matrixRow << std::endl;
double* matrixRowData = matrix.get_row(0).data_block();
std::cout << "First row, stored in a double*" << std::endl;
std::cout << matrixRowData[0] << " " << matrixRowData[1] << std::endl;
double* matrixRowDataFromVector = matrixRow.data_block();
std::cout << "First row, stored in a double* after passing through a
vnl_vector" << std::endl;
std::cout << matrixRowDataFromVector[0] << " " <<
matrixRowDataFromVector[1] << std::endl;
return EXIT_SUCCESS;
}
Output :
Matrix
4 3
2 1
First row, stored in a vnl_vector
4 3
First row, stored in a double*
0 3
First row, stored in a double* after passing through a vnl_vector
4 3
It was compiled with the following CMakeLists.txt:
cmake_minimum_required(VERSION 2.8)
project(IsThisAvnlBug)
find_package(ITK REQUIRED)
include(${ITK_USE_FILE})
add_executable(IsThisAvnlBug MACOSX_BUNDLE IsThisAvnlBug.cxx)
target_link_libraries(IsThisAvnlBug ${ITK_LIBRARIES})
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/insight-users/attachments/20161104/584d34de/attachment.html>
More information about the Insight-users
mailing list