From Gordian.Kabelitz at medma.uni-heidelberg.de Mon Jul 3 07:22:49 2017 From: Gordian.Kabelitz at medma.uni-heidelberg.de (Kabelitz, Gordian) Date: Mon, 3 Jul 2017 11:22:49 +0000 Subject: [ITK] [ITK-users] Writing from an external buffer to VectorImage In-Reply-To: References: <81be8e27dd684f54944a7ff7b0d67c42@exch06.ad.uni-heidelberg.de> Message-ID: <6d77197c34a8433299f202d1b223ba09@exch06.ad.uni-heidelberg.de> Hello, I want to provide a solution to the question I had. In the case that someone else need an code example. Just to give an idea how the implementation can look like. The main reads an image and passes this image to the function that calls the kernel. After the kernel is done the result is copied to the new vector image [1]. int main(int argc, char* argv[]) { createImage(); auto nrrdIO = NRRDIOType::New(); auto reader = ReaderType::New(); reader->SetFileName("newImage.nrrd"); reader->SetImageIO(nrrdIO); try { reader->Update(); } catch (itk::ExceptionObject e) { std::cerr << "Exception caught!\n"; std::cerr << e << std::endl; } auto image = reader->GetOutput(); auto size = image->GetLargestPossibleRegion().GetSize(); int sz[3] = {size[0],size[1],size[2]}; auto totalVoxel = sz[0] * sz[1] * sz[2]; auto cuda = CudaTest(); auto out = new float4[totalVoxel]; cuda.runKernel(out, image->GetBufferPointer(), sz); auto vecImage = VectorImageType::New(); VectorImageType::IndexType index; index[0] = 0; index[1] = 0; index[2] = 0; VectorImageType::RegionType region(index,size); vecImage->SetRegions(region); vecImage->SetVectorLength(3); vecImage->Allocate(); // copy image buffer to vecImage, component by component auto vecBuffer = vecImage->GetBufferPointer(); auto j = 0; for (auto i = 0; i < totalVoxel; ++i) { vecBuffer[j] = out[i].x; j++; vecBuffer[j] = out[i].y; j++; vecBuffer[j] = out[i].z; j++; } auto writer = WriterType::New(); writer->SetInput(vecImage); writer->SetFileName("out.nrrd"); writer->SetImageIO(nrrdIO); try { writer->Update(); } catch (itk::ExceptionObject e) { std::cerr << "Exception caught!\n"; std::cerr << e << std::endl; } delete[] out; } The function that starts the kernel looks like this: void CudaTest::runKernel(float4* out, float* data, int* size) { auto totalVoxel = size[0] * size[1] * size[2]; // copy image to texture memory auto channelDesc = cudaCreateChannelDesc(); cudaArray *cuArray; auto extent = make_cudaExtent(size[0], size[1], size[2]); gpuErrChk(cudaMalloc3DArray(&cuArray, &channelDesc, extent)); cudaMemcpy3DParms copyparms = { 0 }; copyparms.extent = extent; copyparms.dstArray = cuArray; copyparms.kind = cudaMemcpyHostToDevice; copyparms.srcPtr = make_cudaPitchedPtr((void*)data, size[0] * sizeof(float), size[0], size[1]); gpuErrChk(cudaMemcpy3D(©parms)); // set texture configuration and bind array to texture tex_volume.addressMode[0] = cudaAddressModeClamp; tex_volume.addressMode[1] = cudaAddressModeClamp; tex_volume.addressMode[2] = cudaAddressModeClamp; tex_volume.filterMode = cudaFilterModeLinear; tex_volume.normalized = false; gpuErrChk(cudaBindTextureToArray(tex_volume, cuArray, channelDesc)); // allocate memory for gradient image data on the device float4 *dev_gradientImage; gpuErrChk(cudaMalloc(&dev_gradientImage, totalVoxel * sizeof(float4))); // copy image dimension to device int* dev_dimension; gpuErrChk(cudaMalloc(&dev_dimension, 3 * sizeof(int))); gpuErrChk(cudaMemcpy(dev_dimension, size, 3 * sizeof(int), cudaMemcpyHostToDevice)); // start computation for the gradient image dim3 blockDim(16, 8, 8); //<- threads in block, change according to used GPU, max 1024 threads in a single block dim3 grid((size[0] / blockDim.x) + 1, (size[1] / blockDim.y) + 1, (size[2] / blockDim.z) + 1); computeGradientImage << > >(dev_gradientImage, dev_dimension); gpuErrChk(cudaGetLastError()); gpuErrChk(cudaDeviceSynchronize()); // unbind texture gpuErrChk(cudaUnbindTexture(tex_volume)); gpuErrChk(cudaFreeArray(cuArray)); gpuErrChk(cudaMemcpy(out, dev_gradientImage, totalVoxel * sizeof(float4), cudaMemcpyDeviceToHost)); printf("Kernel is done.\n"); } The kernel used in this example. __global__ void computeGradientImage(float4* gradientImage, int* dimension) { // every thread computes the float4 voxel with theta,phi,magnitude from gradient image int idx = blockIdx.x * blockDim.x + threadIdx.x; int idy = blockIdx.y * blockDim.y + threadIdx.y; int idz = blockIdx.z * blockDim.z + threadIdx.z; if (idx < dimension[0] && idy < dimension[1] && idz < dimension[2]) { // define sobel filter for each direction float x_000 = tex3D(tex_volume, idx - 1, idy - 1, idz - 1); float x_001 = tex3D(tex_volume, idx - 1, idy - 1, idz ); float x_002 = tex3D(tex_volume, idx - 1, idy - 1, idz + 1); float x_010 = tex3D(tex_volume, idx - 1, idy, idz - 1); float x_011 = tex3D(tex_volume, idx - 1, idy, idz ); float x_012 = tex3D(tex_volume, idx - 1, idy, idz + 1); float x_020 = tex3D(tex_volume, idx - 1, idy + 1, idz - 1); float x_021 = tex3D(tex_volume, idx - 1, idy + 1, idz ); float x_022 = tex3D(tex_volume, idx - 1, idy + 1, idz + 1); float x_100 = tex3D(tex_volume, idx, idy - 1, idz - 1); float x_101 = tex3D(tex_volume, idx, idy - 1, idz ); float x_102 = tex3D(tex_volume, idx, idy - 1, idz + 1); float x_110 = tex3D(tex_volume, idx, idy, idz - 1); // float x_111 = tex3D(tex_volume, idx, idy, idz ); float x_112 = tex3D(tex_volume, idx, idy, idz + 1); float x_120 = tex3D(tex_volume, idx, idy + 1, idz - 1); float x_121 = tex3D(tex_volume, idx, idy + 1, idz ); float x_122 = tex3D(tex_volume, idx, idy + 1, idz + 1); float x_200 = tex3D(tex_volume, idx + 1, idy - 1, idz - 1); float x_201 = tex3D(tex_volume, idx + 1, idy - 1, idz ); float x_202 = tex3D(tex_volume, idx + 1, idy - 1, idz + 1); float x_210 = tex3D(tex_volume, idx + 1, idy, idz - 1); float x_211 = tex3D(tex_volume, idx + 1, idy, idz ); float x_212 = tex3D(tex_volume, idx + 1, idy, idz + 1); float x_220 = tex3D(tex_volume, idx + 1, idy + 1, idz - 1); float x_221 = tex3D(tex_volume, idx + 1, idy + 1, idz ); float x_222 = tex3D(tex_volume, idx + 1, idy + 1, idz + 1); // derivative in x direction auto centerX = - 1.f*x_000 - 3.f*x_010 - 1.f*x_020 - 3.f*x_001 - 6.f*x_011 - 3.f*x_021 - 1.f*x_002 - 3.f*x_012 - 1.f*x_022 + 1.f*x_200 + 3.f*x_210 + 1.f*x_220 + 3.f*x_201 + 6.f*x_211 + 3.f*x_221 + 1.f*x_202 + 3.f*x_212 + 1.f*x_222; // derivative in y direction auto centerY = - 1.f*x_000 - 3.f*x_100 - 1.f*x_200 - 3.f*x_001 - 6.f*x_101 - 3.f*x_201 - 1.f*x_002 - 3.f*x_102 - 1.f*x_202 + 1.f*x_020 + 3.f*x_120 + 1.f*x_220 + 3.f*x_021 + 6.f*x_121 + 3.f*x_221 + 1.f*x_022 + 3.f*x_122 + 1.f*x_222; // derivative in z direction auto centerZ = - 1.f*x_000 - 3.f*x_100 - 1.f*x_200 - 3.f*x_010 - 6.f*x_110 - 3.f*x_210 - 1.f*x_020 - 3.f*x_120 - 1.f*x_220 + 1.f*x_002 + 3.f*x_102 + 1.f*x_202 + 3.f*x_012 + 6.f*x_112 + 3.f*x_212 + 1.f*x_022 + 3.f*x_122 + 1.f*x_222; // magnitude of each voxels gradient auto magn = sqrtf(centerX*centerX + centerY*centerY + centerZ*centerZ); gradientImage[idx + dimension[0] * (idy + idz * dimension[1])] = make_float4(centerX, centerY, centerZ, magn); } } with kind regards, Gordian [1]: https://itk.org/Doxygen/html/classitk_1_1VectorImage.html Von: D?enan Zuki? [mailto:dzenanz at gmail.com] Gesendet: Mittwoch, 28. Juni 2017 17:17 An: Kabelitz, Gordian Cc: insight-users at itk.org Betreff: Re: [ITK-users] Writing from an external buffer to VectorImage Hi Gordian, this approach looks like it should work. What is wrong with it? Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Wed, Jun 28, 2017 at 9:51 AM, Kabelitz, Gordian > wrote: Hello, i computed a gradient with my own function and as a result a pointer to an image buffer is provided. I know the size, origin and spacing of the gradient component image. I want to copy the gradient image into an itk::VectorImage with the components for the x,y,z gradients. The way I copied the image to the GPU is that I retrieved the buffer pointer from my input image and use the pointer to copy the image data to the GPU. I used the way proposed in [1]. The computeGradientImage method is listed at the end of this mail. [...] // get float pointer to image data ImageType::Pointer image = reader->GetOutput(); Image->Update(); float* data = image.GetBufferPointer(); // copy image data to GPU texture memory (this works) gpu_dev->setVoxels(dimension, voxelSize, data); [...] computeGradientImage<<>> (dev_gradientImage, dimension); // copy resulting gradientImage to host variable float4* host_gradientImage; cudaMemcpy(host_gradient, dev_gradientImage, numberOfVoxels*sizeof(float4)); --> Pseudo Code <-- // Now I want to reverse the copy process. I have a float4 image and want to copy this into a itk::VectorImage with VariableVectorLength of 3 (skipping the magnitude value). [...] -> size, spacing, origin, region definition Itk::VectorImageType vecImage = VectorImageType::New(); vecImage->setRegion(region); vecImage ->SetVectorLength(3); vecImage->Allocate(); // copy image buffer to vecImage, component by component auto vecBuffer = vecImage->getBufferPointer(); auto j = 0; for (i=0; i Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From dzenanz at gmail.com Mon Jul 3 08:27:36 2017 From: dzenanz at gmail.com (=?UTF-8?B?RMW+ZW5hbiBadWtpxIc=?=) Date: Mon, 3 Jul 2017 08:27:36 -0400 Subject: [ITK] [ITK-users] Writing from an external buffer to VectorImage In-Reply-To: <6d77197c34a8433299f202d1b223ba09@exch06.ad.uni-heidelberg.de> References: <81be8e27dd684f54944a7ff7b0d67c42@exch06.ad.uni-heidelberg.de> <6d77197c34a8433299f202d1b223ba09@exch06.ad.uni-heidelberg.de> Message-ID: Thanks for sharing your code Gordian, it will probably help somebody in the future! On Mon, Jul 3, 2017 at 7:22 AM, Kabelitz, Gordian < Gordian.Kabelitz at medma.uni-heidelberg.de> wrote: > Hello, > > > > I want to provide a solution to the question I had. In the case that > someone else need an code example. > > Just to give an idea how the implementation can look like. > > The main reads an image and passes this image to the function that calls > the kernel. > > After the kernel is done the result is copied to the new vector image [1]. > > > > int main(int argc, char* argv[]) > > { > > > > createImage(); > > auto nrrdIO = NRRDIOType::New(); > > auto reader = ReaderType::New(); > > reader->SetFileName("newImage.nrrd"); > > reader->SetImageIO(nrrdIO); > > > > try > > { > > reader->Update(); > > } > > catch (itk::ExceptionObject e) > > { > > std::cerr << "Exception caught!\n"; > > std::cerr << e << std::endl; > > } > > > > auto image = reader->GetOutput(); > > > > auto size = image->GetLargestPossibleRegion().GetSize(); > > int sz[3] = {size[0],size[1],size[2]}; > > auto totalVoxel = sz[0] * sz[1] * sz[2]; > > > > auto cuda = CudaTest(); > > auto out = new float4[totalVoxel]; > > cuda.runKernel(out, image->GetBufferPointer(), sz); > > > > auto vecImage = VectorImageType::New(); > > VectorImageType::IndexType index; > > index[0] = 0; > > index[1] = 0; > > index[2] = 0; > > VectorImageType::RegionType region(index,size); > > vecImage->SetRegions(region); > > vecImage->SetVectorLength(3); > > vecImage->Allocate(); > > > > // copy image buffer to vecImage, component by component > > auto vecBuffer = vecImage->GetBufferPointer(); > > auto j = 0; > > for (auto i = 0; i < totalVoxel; ++i) > > { > > vecBuffer[j] = out[i].x; j++; > > vecBuffer[j] = out[i].y; j++; > > vecBuffer[j] = out[i].z; j++; > > } > > > > auto writer = WriterType::New(); > > writer->SetInput(vecImage); > > writer->SetFileName("out.nrrd"); > > writer->SetImageIO(nrrdIO); > > try > > { > > writer->Update(); > > } > > catch (itk::ExceptionObject e) > > { > > std::cerr << "Exception caught!\n"; > > std::cerr << e << std::endl; > > } > > > > delete[] out; > > > > } > > > > The function that starts the kernel looks like this: > > > > void CudaTest::runKernel(float4* out, float* data, int* size) > > { > > auto totalVoxel = size[0] * size[1] * size[2]; > > // copy image to texture memory > > auto channelDesc = cudaCreateChannelDesc(); > > cudaArray *cuArray; > > auto extent = make_cudaExtent(size[0], size[1], size[2]); > > gpuErrChk(cudaMalloc3DArray(&cuArray, &channelDesc, extent)); > > cudaMemcpy3DParms copyparms = { 0 }; > > copyparms.extent = extent; > > copyparms.dstArray = cuArray; > > copyparms.kind = cudaMemcpyHostToDevice; > > copyparms.srcPtr = make_cudaPitchedPtr((void*)data, size[0] * > sizeof(float), size[0], size[1]); > > gpuErrChk(cudaMemcpy3D(©parms)); > > > > // set texture configuration and bind array to texture > > tex_volume.addressMode[0] = cudaAddressModeClamp; > > tex_volume.addressMode[1] = cudaAddressModeClamp; > > tex_volume.addressMode[2] = cudaAddressModeClamp; > > tex_volume.filterMode = cudaFilterModeLinear; > > tex_volume.normalized = false; > > gpuErrChk(cudaBindTextureToArray(tex_volume, cuArray, > channelDesc)); > > > > // allocate memory for gradient image data on the device > > float4 *dev_gradientImage; > > gpuErrChk(cudaMalloc(&dev_gradientImage, totalVoxel * sizeof(float4 > ))); > > > > // copy image dimension to device > > int* dev_dimension; > > gpuErrChk(cudaMalloc(&dev_dimension, 3 * sizeof(int))); > > gpuErrChk(cudaMemcpy(dev_dimension, size, 3 * sizeof(int), > cudaMemcpyHostToDevice)); > > > > // start computation for the gradient image > > dim3 blockDim(16, 8, 8); //<- threads in block, change according > to used GPU, max 1024 threads in a single block > > dim3 grid((size[0] / blockDim.x) + 1, (size[1] / blockDim.y) + 1, ( > size[2] / blockDim.z) + 1); > > > > computeGradientImage << > >(dev_gradientImage, > dev_dimension); > > gpuErrChk(cudaGetLastError()); > > gpuErrChk(cudaDeviceSynchronize()); > > > > // unbind texture > > gpuErrChk(cudaUnbindTexture(tex_volume)); > > gpuErrChk(cudaFreeArray(cuArray)); > > > > gpuErrChk(cudaMemcpy(out, dev_gradientImage, totalVoxel * sizeof( > float4), cudaMemcpyDeviceToHost)); > > printf("Kernel is done.\n"); > > } > > > > The kernel used in this example. > > > > __global__ void computeGradientImage(float4* gradientImage, int* dimension > ) > > { > > // every thread computes the float4 voxel with theta,phi,magnitude > from gradient image > > int idx = blockIdx.x * blockDim.x + threadIdx.x; > > int idy = blockIdx.y * blockDim.y + threadIdx.y; > > int idz = blockIdx.z * blockDim.z + threadIdx.z; > > > > if (idx < dimension[0] && idy < dimension[1] && idz < dimension[2]) > > { > > // define sobel filter for each direction > > float x_000 = tex3D(tex_volume, idx - 1, idy - 1, idz - 1); > > float x_001 = tex3D(tex_volume, idx - 1, idy - 1, idz ); > > float x_002 = tex3D(tex_volume, idx - 1, idy - 1, idz + 1); > > float x_010 = tex3D(tex_volume, idx - 1, idy, idz - 1); > > float x_011 = tex3D(tex_volume, idx - 1, idy, idz ); > > float x_012 = tex3D(tex_volume, idx - 1, idy, idz + 1); > > float x_020 = tex3D(tex_volume, idx - 1, idy + 1, idz - 1); > > float x_021 = tex3D(tex_volume, idx - 1, idy + 1, idz ); > > float x_022 = tex3D(tex_volume, idx - 1, idy + 1, idz + 1); > > > > float x_100 = tex3D(tex_volume, idx, idy - 1, idz - 1); > > float x_101 = tex3D(tex_volume, idx, idy - 1, idz ); > > float x_102 = tex3D(tex_volume, idx, idy - 1, idz + 1); > > float x_110 = tex3D(tex_volume, idx, idy, idz - 1); > > // float x_111 = tex3D(tex_volume, idx, idy, idz ); > > float x_112 = tex3D(tex_volume, idx, idy, idz + 1); > > float x_120 = tex3D(tex_volume, idx, idy + 1, idz - 1); > > float x_121 = tex3D(tex_volume, idx, idy + 1, idz ); > > float x_122 = tex3D(tex_volume, idx, idy + 1, idz + 1); > > > > float x_200 = tex3D(tex_volume, idx + 1, idy - 1, idz - 1); > > float x_201 = tex3D(tex_volume, idx + 1, idy - 1, idz ); > > float x_202 = tex3D(tex_volume, idx + 1, idy - 1, idz + 1); > > float x_210 = tex3D(tex_volume, idx + 1, idy, idz - 1); > > float x_211 = tex3D(tex_volume, idx + 1, idy, idz ); > > float x_212 = tex3D(tex_volume, idx + 1, idy, idz + 1); > > float x_220 = tex3D(tex_volume, idx + 1, idy + 1, idz - 1); > > float x_221 = tex3D(tex_volume, idx + 1, idy + 1, idz ); > > float x_222 = tex3D(tex_volume, idx + 1, idy + 1, idz + 1); > > > > // derivative in x direction > > auto centerX = - 1.f*x_000 - 3.f*x_010 - 1.f*x_020 > > - 3.f*x_001 - 6.f*x_011 - 3.f*x_021 > > - 1.f*x_002 - 3.f*x_012 - 1.f*x_022 > > + 1.f*x_200 + 3.f*x_210 + 1.f*x_220 > > + 3.f*x_201 + 6.f*x_211 + 3.f*x_221 > > + 1.f*x_202 + 3.f*x_212 + 1.f*x_222; > > > > // derivative in y direction > > auto centerY = - 1.f*x_000 - 3.f*x_100 - 1.f*x_200 > > - 3.f*x_001 - 6.f*x_101 - 3.f*x_201 > > - 1.f*x_002 - 3.f*x_102 - 1.f*x_202 > > + 1.f*x_020 + 3.f*x_120 + 1.f*x_220 > > + 3.f*x_021 + 6.f*x_121 + 3.f*x_221 > > + 1.f*x_022 + 3.f*x_122 + 1.f*x_222; > > > > // derivative in z direction > > auto centerZ = - 1.f*x_000 - 3.f*x_100 - 1.f*x_200 > > - 3.f*x_010 - 6.f*x_110 - 3.f*x_210 > > - 1.f*x_020 - 3.f*x_120 - 1.f*x_220 > > + 1.f*x_002 + 3.f*x_102 + 1.f*x_202 > > + 3.f*x_012 + 6.f*x_112 + 3.f*x_212 > > + 1.f*x_022 + 3.f*x_122 + 1.f*x_222; > > > > // magnitude of each voxels gradient > > auto magn = sqrtf(centerX*centerX + centerY*centerY + > centerZ*centerZ); > > > > gradientImage[idx + dimension[0] * (idy + idz * dimension[1])] > = make_float4(centerX, centerY, centerZ, magn); > > } > > } > > > > with kind regards, > > Gordian > > > > [1]: https://itk.org/Doxygen/html/classitk_1_1VectorImage.html > > > > > > *Von:* D?enan Zuki? [mailto:dzenanz at gmail.com] > *Gesendet:* Mittwoch, 28. Juni 2017 17:17 > *An:* Kabelitz, Gordian > *Cc:* insight-users at itk.org > *Betreff:* Re: [ITK-users] Writing from an external buffer to VectorImage > > > > Hi Gordian, > > > > this approach looks like it should work. What is wrong with it? > > > > Regards, > > D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) > > > > On Wed, Jun 28, 2017 at 9:51 AM, Kabelitz, Gordian < > Gordian.Kabelitz at medma.uni-heidelberg.de> wrote: > > Hello, > > i computed a gradient with my own function and as a result a pointer to an > image buffer is provided. I know the size, origin and spacing of the > gradient component image. > I want to copy the gradient image into an itk::VectorImage with the > components for the x,y,z gradients. > > The way I copied the image to the GPU is that I retrieved the buffer > pointer from my input image and use the pointer to copy the image data to > the GPU. > I used the way proposed in [1]. The computeGradientImage method is listed > at the end of this mail. > > [...] > // get float pointer to image data > ImageType::Pointer image = reader->GetOutput(); > Image->Update(); > > float* data = image.GetBufferPointer(); > // copy image data to GPU texture memory (this works) > gpu_dev->setVoxels(dimension, voxelSize, data); > [...] > computeGradientImage<<>> (dev_gradientImage, dimension); > > // copy resulting gradientImage to host variable > float4* host_gradientImage; > cudaMemcpy(host_gradient, dev_gradientImage, numberOfVoxels*sizeof(float4)) > ; > > --> Pseudo Code <-- > // Now I want to reverse the copy process. I have a float4 image and want > to copy this into a itk::VectorImage with VariableVectorLength of 3 > (skipping the magnitude value). > [...] -> size, spacing, origin, region definition > Itk::VectorImageType vecImage = VectorImageType::New(); > vecImage->setRegion(region); > vecImage ->SetVectorLength(3); > vecImage->Allocate(); > > // copy image buffer to vecImage, component by component > auto vecBuffer = vecImage->getBufferPointer(); > auto j = 0; > for (i=0; i { > vecbuffer[j] = host_gradient[i].x; j++; > vecbuffer[j] = host_gradient[i].y; j++; > vecbuffer[j] = host_gradient[i].z; j++; > } > > // save vecImage as nrrd image > [...] > > I haven't found a way to achieve my idea. > Are there any suggestions or examples? > As far I can see I cannot use the itk::ImportImageFilter. > > Thank you for any suggestions. > With kind regards, > Gordian > > [1]: https://itk.org/CourseWare/Training/GettingStarted-V.pdf > > void computeGradientImage(float4* gradientImage, int* dimension) > { > // every thread computes the float4 voxel with theta,phi,magnitude > from gradient image > int idx = blockIdx.x * blockDim.x + threadIdx.x; > int idy = blockIdx.y * blockDim.y + threadIdx.y; > int idz = blockIdx.z * blockDim.z + threadIdx.z; > > if (idx < dimension[0] && idy < dimension[1] && idz < dimension[2]) > { > // define sobel filter for each direction > [...] > > // run sobel on image in texture memory for each direction > and put result into a float4 image > gradientImage[idx + dimension[0] * (idy + idz * > dimension[1])] = make_float4(sobelX, sobelY, sobelZ, magn); > } > } > > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > > > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From julien.finet at kitware.com Mon Jul 3 09:42:49 2017 From: julien.finet at kitware.com (Julien Finet) Date: Mon, 3 Jul 2017 15:42:49 +0200 Subject: [ITK] ANN: ITK Training Course in Lyon, France - October 16th Message-ID: Dear all, Kitware will be holding a developers training course on October 16th 2017 in Lyon, France. This course will cover features of ITK : - Overview/Architecture - Segmentation - Registration - Using ITK in your applications Please visit our web site for more information, trainings (VTK, CMake, Slicer, OpenCV...) and registration details at : https://training.kitware.fr/browse/157 Note that the course will be taught in English. If you have any questions, please contact us at courses[at]kitware.com or formations[at]kitware.fr. Best regards, Julien. -------------- next part -------------- An HTML attachment was scrubbed... URL: From francois.budin at kitware.com Tue Jul 4 10:32:15 2017 From: francois.budin at kitware.com (Francois Budin) Date: Tue, 4 Jul 2017 10:32:15 -0400 Subject: [ITK] [ITK-dev] No ITK confab meeting on July 7th and July 14th Message-ID: Hello ITK developers, There will be no ITK confab meeting on July 7th and July 14th. Meetings will resume at their normal time on July 21st. See you all then! Fran?ois -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers From brahiand.rangel at gmail.com Wed Jul 5 11:35:22 2017 From: brahiand.rangel at gmail.com (BRAHIAN DAVID RANGEL CASTRO) Date: Wed, 5 Jul 2017 10:35:22 -0500 Subject: [ITK] [ITK-users] Extract contour of several regions as if they were connected Message-ID: Hi itk users, Currently I am working on passing an algorithm written in matlab to itk. One of the steps is use snakes* to get a contour (as mask) of several regions that are not connected as if they were. Here is a visual example:? snakes sample.png ? I have tried using the GeodesicActiveContourLevelSetImageFilter but the result is not satisfactory. Could you tell me which parameters to adjust in order to achieve this result or some other suggestion of which filter to use? Thanks, Brahian *The algorithm used for the snakes is https://www.mathworks.com/ matlabcentral/fileexchange/28149-snake---active-contour -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From aharr8 at uwo.ca Wed Jul 5 15:19:37 2017 From: aharr8 at uwo.ca (Andrew Harris) Date: Wed, 5 Jul 2017 15:19:37 -0400 Subject: [ITK] [ITK-users] applying a transform to an ITK Point object results in it moving the opposite direction from the image In-Reply-To: References: <6ABFBEEB-EBE8-478C-BEEB-747A5373FBE9@mail.nih.gov> Message-ID: Thanks for getting back to me. The numbers correspond correctly to what is expected when I do the math directly in MATLAB, and when I do the matrix multiplication I get the same coordinates that are output by ITK for both the translation that works and the rotation that does not. One curious note is that while I set the center of rotation explicitly, it shows up as a zero vector in the output. I was able to get the known rotation case to match up the expected coordinates by subtracting newTranslatin()->GetOffset(); from the resulting point, but then of course the known translation case fails. Any further thoughts would be appreciated. -- AH Andrew Harris, Honours BSc (Medical Physics) PhD (CAMPEP) & MClSc Candidate ----------------------------------------------------------------------------------------------- *This email and any attachments thereto may contain private, confidential, and privileged materials for the sole use of the intended recipient. Any reviewing, copying, or distribution of this email (or any attachments thereto) by other than the intended recipient is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently destroy this email and any attachments thereto.* On Thu, Jun 29, 2017 at 3:04 PM, Yaniv, Ziv Rafael (NIH/NLM/LHC) [C] < zivrafael.yaniv at nih.gov> wrote: > The code snippet looks correct. I would advise that you print the > transformations to see that you are getting what you expect. The relevant > entries, Matrix, Center, Translation, Offset: > > > > Original transform is: > > > > *T*(*x*)=*A*(*x*?*c*)+*t*+*c* > > > > Where: > > *A* ? matrix > > *c* ? center > > *t *? translation > > *t**+c ?A**c* ? offset > > > > The inverse should have: > > *A*^{-1} ? matrix > > *c* ? center > > -*A*^{-1}* t *? translation > > *c* - *A*^{-1}* t - **A*^{-1}* c* - offset > > > > > > hope this helps > > Ziv > > > > p.s. When working with ITK always remember that you are dealing with > physical space, distances are in mm/km?, volumes in mm^3?. Don?t be tempted > to measure things in pixels/voxels. > > > > *From: *Andrew Harris > *Date: *Thursday, June 29, 2017 at 1:21 PM > *To: *"Yaniv, Ziv Rafael (NIH/NLM/LHC) [C]" > *Cc: *Insight-users > *Subject: *Re: [ITK-users] [ITK] applying a transform to an ITK Point > object results in it moving the opposite direction from the image > > > > Thanks for getting back to me. Using the inverse transform on the point > selected in the moving image works to transform the point within a > reasonable amount to the homologous feature selected in the fixed image > when I use two identical images with a known offset of 100 voxels in each > direction. However, upon testing identical images with a known rotation > the selected points again fail to line up. The transform I have been using > is the Rigid3DVersorTransform, and the lines of code I'm using to set the > inverse are: > > > > newTransform->SetCenter(oldTransform->GetCenter()); > > oldTransform->GetInverse(newTransform); > > > > Any idea why translation would work but rotation causes a problem? > > > -- > > AH > > > > Andrew Harris, Honours BSc (Medical Physics) > > PhD (CAMPEP) & MClSc Candidate > > ------------------------------------------------------------ > ----------------------------------- > > *This email and any attachments thereto may contain private, > confidential, and privileged materials for the sole use of the intended > recipient. Any reviewing, copying, or distribution of this email (or any > attachments thereto) by other than the intended recipient is strictly > prohibited. If you are not the intended recipient, please contact the > sender immediately and permanently destroy this email and any attachments > thereto.* > > > > On Wed, Jun 28, 2017 at 4:50 PM, Yaniv, Ziv Rafael (NIH/NLM/LHC) [C] < > zivrafael.yaniv at nih.gov> wrote: > > Hello Andrew, > > > > In ITK the result of a registration maps points from the fixed image > coordinate system to the moving coordinate system, so T(p_f) = p_m and the > TRE is || T(p_f) ? p_m||. I suspect you just need to use the inverse > transform. > > > > You may be interested in this SimpleITK notebook (http:// > insightsoftwareconsortium.github.io/SimpleITK-Notebooks/ > Python_html/67_Registration_Semiautomatic_Homework.html) which has a > linked cursor GUI (gui. RegistrationPointDataAquisition). The source code > for the UI is here: https://github.com/InsightSoftwareConsortium/ > SimpleITK-Notebooks/blob/master/Python/gui.py . > > > > hope this helps > > Ziv > > > > > > > > > > *From: *Andrew Harris > *Date: *Wednesday, June 28, 2017 at 3:14 PM > *To: *Insight-users > *Subject: *[ITK-users] [ITK] applying a transform to an ITK Point object > results in it moving the opposite direction from the image > > > > Hi there, > > I have been trying for a while to get this working: I want to be able to > select corresponding points in a fixed and moving image, and determine how > well the moving image is transformed to overlay the fixed image by using > target registration error. The problem is, using the same transform I > applied to a moving image that translated it to the left, the point > selected in the moving image gets translated to the right for example. > > -- > > AH > > > > Andrew Harris, Honours BSc (Medical Physics) > > PhD (CAMPEP) & MClSc Candidate > > ------------------------------------------------------------ > ----------------------------------- > > *This email and any attachments thereto may contain private, > confidential, and privileged materials for the sole use of the intended > recipient. Any reviewing, copying, or distribution of this email (or any > attachments thereto) by other than the intended recipient is strictly > prohibited. If you are not the intended recipient, please contact the > sender immediately and permanently destroy this email and any attachments > thereto.* > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From sethisea at gmail.com Thu Jul 6 12:11:24 2017 From: sethisea at gmail.com (Sean Sethi) Date: Thu, 6 Jul 2017 12:11:24 -0400 Subject: [ITK] Dicom read error Message-ID: Hi everyone, I am encountering a dicom read issue with data that was processed using a collapsing filter by our software. The original data is 0.5x0.5x1 mm^3 which is collapsed to a dataset of 1x1x2 mm^3. The first error that is noticed is the data appear squished axially, and the slice thickness is incorrectly read, even though the header file has the correct information. (slice thickness=2, spacing between slices=2). The second error that I see is due to it incorrectly reading the numbering of the dicoms. It shows every 11th or so image as out of order, which is coming from reading the numbers in order of 1, 10, 11, 12 etc instead of 1, 2,3. When the files are number 01, 02, 03, the issue is corrected, but image still appears squashed. Both the issues are also corrected when the collapsed data is converted to NIFTI. So my question is how should we write our DICOM files so they are read correctly? Are the thicknesses and spacings computed from other tag(s)? Thank you for consideration, Sean -- Sean Sethi, M.S. Research, The MRI Institute for Biomedical Research Data processing, Magnetic Resonance Innovations, Inc. 440 East Ferry Street, Unit #1 Detroit, MI 48202 (313) 758-0065 - Tel (313) 758-0068 - Fax sethisea at gmail.com http://www.mrimaging.com/ http://www.mrinnovations.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From bill.lorensen at gmail.com Thu Jul 6 14:59:10 2017 From: bill.lorensen at gmail.com (Bill Lorensen) Date: Thu, 6 Jul 2017 14:59:10 -0400 Subject: [ITK] Dicom read error In-Reply-To: References: Message-ID: <9AAF885D-8A5D-4182-B322-86CE09B0855E@gmail.com> It's uses the image position patient tag to determine slice location. Image spacing is not used. Also, it does not use the name of them for ordering. Once again it uses Ipp. This is common practice in medical image processing software. Sent from my iPad > On Jul 6, 2017, at 12:11 PM, Sean Sethi wrote: > > Hi everyone, > > I am encountering a dicom read issue with data that was processed using a collapsing filter by our software. The original data is 0.5x0.5x1 mm^3 which is collapsed to a dataset of 1x1x2 mm^3. > > The first error that is noticed is the data appear squished axially, and the slice thickness is incorrectly read, even though the header file has the correct information. (slice thickness=2, spacing between slices=2). > > The second error that I see is due to it incorrectly reading the numbering of the dicoms. It shows every 11th or so image as out of order, which is coming from reading the numbers in order of 1, 10, 11, 12 etc instead of 1, 2,3. When the files are number 01, 02, 03, the issue is corrected, but image still appears squashed. > > Both the issues are also corrected when the collapsed data is converted to NIFTI. So my question is how should we write our DICOM files so they are read correctly? Are the thicknesses and spacings computed from other tag(s)? > > Thank you for consideration, > > Sean > > > -- > Sean Sethi, M.S. > Research, The MRI Institute for Biomedical Research > Data processing, Magnetic Resonance Innovations, Inc. > 440 East Ferry Street, Unit #1 > Detroit, MI 48202 > (313) 758-0065 - Tel > (313) 758-0068 - Fax > sethisea at gmail.com > http://www.mrimaging.com/ > http://www.mrinnovations.com > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community -------------- next part -------------- An HTML attachment was scrubbed... URL: From sethisea at gmail.com Thu Jul 6 15:42:04 2017 From: sethisea at gmail.com (Sean Sethi) Date: Thu, 6 Jul 2017 15:42:04 -0400 Subject: [ITK] Dicom read error In-Reply-To: <9AAF885D-8A5D-4182-B322-86CE09B0855E@gmail.com> References: <9AAF885D-8A5D-4182-B322-86CE09B0855E@gmail.com> Message-ID: Hi Bill, I shared this information with our developer. We already rewrite image position in our processed data. Can you please look at the data sets which I linked? And I have to disagree about the display of the image. I attached image showing ITK's display of dicoms before and after I renamed the filenames only. You can see the beforehand image where the discontinuities are in coronal and sagittal view. Those headers should be the same since I did not change them. Sean On Thu, Jul 6, 2017 at 2:59 PM, Bill Lorensen wrote: > It's uses the image position patient tag to determine slice location. > Image spacing is not used. Also, it does not use the name of them for > ordering. Once again it uses Ipp. > > This is common practice in medical image processing software. > > Sent from my iPad > > On Jul 6, 2017, at 12:11 PM, Sean Sethi wrote: > > Hi everyone, > > I am encountering a dicom read issue with data that was processed using a > collapsing filter by our software. The original data > is > 0.5x0.5x1 mm^3 which is collapsed to a dataset of 1x1x2 mm^3. > > > The first error that is noticed is the data appear squished axially, and > the slice thickness is incorrectly read, even though the header file has > the correct information. (slice thickness=2, spacing between slices=2). > > The second error that I see is due to it incorrectly reading the numbering > of the dicoms. It shows every 11th or so image as out of order, which is > coming from reading the numbers in order of 1, 10, 11, 12 etc instead of 1, > 2,3. When the files are number 01, 02, 03, the issue is corrected, but > image still appears squashed. > > Both the issues are also corrected when the collapsed data is converted to > NIFTI. So my question is how should we write our DICOM files so they are > read correctly? Are the thicknesses and spacings computed from other > tag(s)? > > Thank you for consideration, > > Sean > > > -- > Sean Sethi, M.S. > Research, The MRI Institute for Biomedical Research > Data processing, Magnetic Resonance Innovations, Inc. > 440 East Ferry Street, Unit #1 > Detroit, MI 48202 > (313) 758-0065 - Tel > (313) 758-0068 - Fax > sethisea at gmail.com > http://www.mrimaging.com/ > http://www.mrinnovations.com > > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > > -- Sean Sethi, M.S. Research, The MRI Institute for Biomedical Research Data processing, Magnetic Resonance Innovations, Inc. 440 East Ferry Street, Unit #1 Detroit, MI 48202 (313) 758-0065 - Tel (313) 758-0068 - Fax sethisea at gmail.com http://www.mrimaging.com/ http://www.mrinnovations.com -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: test-new numbering.png Type: image/png Size: 223865 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: test-oldnumbering.png Type: image/png Size: 168417 bytes Desc: not available URL: From francois.budin at kitware.com Thu Jul 6 16:01:51 2017 From: francois.budin at kitware.com (Francois Budin) Date: Thu, 6 Jul 2017 16:01:51 -0400 Subject: [ITK] Dicom read error In-Reply-To: References: <9AAF885D-8A5D-4182-B322-86CE09B0855E@gmail.com> Message-ID: Hello Sean, As Bill said, it is the slice location that is used to compute the image spacing: The average spacing between all slices is computed and sets as your output image interslice spacing. For the order of the files though, it is based on the order in which the files are given to the image reader. Typically, one uses "itk::GDCMSeriesFileNames" and sets an input directory. This will create a list of all the files contained in that directory and these files will be ordered alphabetically. That means that 1.dcm is after 01.dcm, 2.dcm is after 11.dcm, and so on. You can either rename your files to make sure that they are ordered correctly, as you did, or use a customized function to generate your series of files to read that fits your need. Hope this helps, Fran?ois On Thu, Jul 6, 2017 at 3:42 PM, Sean Sethi wrote: > Hi Bill, > > I shared this information with our developer. We already rewrite image > position in our processed data. Can you please look at the data sets which > I linked? > > And I have to disagree about the display of the image. I attached image > showing ITK's display of dicoms before and after I renamed the filenames > only. You can see the beforehand image where the discontinuities are in > coronal and sagittal view. Those headers should be the same since I did not > change them. > > Sean > > On Thu, Jul 6, 2017 at 2:59 PM, Bill Lorensen > wrote: > >> It's uses the image position patient tag to determine slice location. >> Image spacing is not used. Also, it does not use the name of them for >> ordering. Once again it uses Ipp. >> >> This is common practice in medical image processing software. >> >> Sent from my iPad >> >> On Jul 6, 2017, at 12:11 PM, Sean Sethi wrote: >> >> Hi everyone, >> >> I am encountering a dicom read issue with data that was processed using a >> collapsing filter by our software. The original data >> is >> 0.5x0.5x1 mm^3 which is collapsed to a dataset of 1x1x2 mm^3. >> >> >> The first error that is noticed is the data appear squished axially, and >> the slice thickness is incorrectly read, even though the header file has >> the correct information. (slice thickness=2, spacing between slices=2). >> >> The second error that I see is due to it incorrectly reading the >> numbering of the dicoms. It shows every 11th or so image as out of order, >> which is coming from reading the numbers in order of 1, 10, 11, 12 etc >> instead of 1, 2,3. When the files are number 01, 02, 03, the issue is >> corrected, but image still appears squashed. >> >> Both the issues are also corrected when the collapsed data is converted >> to NIFTI. So my question is how should we write our DICOM files so they are >> read correctly? Are the thicknesses and spacings computed from other >> tag(s)? >> >> Thank you for consideration, >> >> Sean >> >> >> -- >> Sean Sethi, M.S. >> Research, The MRI Institute for Biomedical Research >> Data processing, Magnetic Resonance Innovations, Inc. >> 440 East Ferry Street, Unit #1 >> Detroit, MI 48202 >> (313) 758-0065 - Tel >> (313) 758-0068 - Fax >> sethisea at gmail.com >> http://www.mrimaging.com/ >> http://www.mrinnovations.com >> >> _______________________________________________ >> Community mailing list >> Community at itk.org >> http://public.kitware.com/mailman/listinfo/community >> >> > > > -- > Sean Sethi, M.S. > Research, The MRI Institute for Biomedical Research > Data processing, Magnetic Resonance Innovations, Inc. > 440 East Ferry Street, Unit #1 > Detroit, MI 48202 > (313) 758-0065 - Tel > (313) 758-0068 - Fax > sethisea at gmail.com > http://www.mrimaging.com/ > http://www.mrinnovations.com > > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From neuying at gmail.com Thu Jul 6 16:18:47 2017 From: neuying at gmail.com (Ying Wang) Date: Thu, 6 Jul 2017 16:18:47 -0400 Subject: [ITK] Dicom read error In-Reply-To: References: <9AAF885D-8A5D-4182-B322-86CE09B0855E@gmail.com> Message-ID: Hi Francois, Does ITK use the tag (0020,0032) to read the image position of patient? Actually, we already update this information after the interpolation on each of slices. The original image, 1st slice, (0020,0032) DS [-99.730746057061\-117.69366503814\-55.15114060703] # 50, 3 ImagePositionPatient 2nd slice, (0020,0032) DS [-99.730746057061\-117.56660042109\-54.159246165521] # 50, 3 ImagePositionPatient That's mean the slice thickness is 1mm/pixel. While after interpolation, we saved the image, 1st slice, (0020,0032) DS [-99.7307\-117.694\-55.1511] # 26, 3 ImagePositionPatient 2nd slice,(0020,0032) DS [-99.7307\-117.44\-53.1674] # 26, 3 ImagePositionPatient That's mean the slice thickness is 2mm/pixel. Does these right? we want to know which tag are you using and we can modify our software for writing DICOM. Thanks again! Ying On Thu, Jul 6, 2017 at 4:01 PM, Francois Budin wrote: > Hello Sean, > > As Bill said, it is the slice location that is used to compute the image > spacing: The average spacing between all slices is computed and sets as > your output image interslice spacing. > For the order of the files though, it is based on the order in which the > files are given to the image reader. Typically, one uses > "itk::GDCMSeriesFileNames" and sets an input directory. This will create a > list of all the files contained in that directory and these files will be > ordered alphabetically. That means that 1.dcm is after 01.dcm, 2.dcm is > after 11.dcm, and so on. You can either rename your files to make sure that > they are ordered correctly, as you did, or use a customized function to > generate your series of files to read that fits your need. > > Hope this helps, > Fran?ois > > On Thu, Jul 6, 2017 at 3:42 PM, Sean Sethi wrote: > >> Hi Bill, >> >> I shared this information with our developer. We already rewrite image >> position in our processed data. Can you please look at the data sets which >> I linked? >> >> And I have to disagree about the display of the image. I attached image >> showing ITK's display of dicoms before and after I renamed the filenames >> only. You can see the beforehand image where the discontinuities are in >> coronal and sagittal view. Those headers should be the same since I did not >> change them. >> >> Sean >> >> On Thu, Jul 6, 2017 at 2:59 PM, Bill Lorensen >> wrote: >> >>> It's uses the image position patient tag to determine slice location. >>> Image spacing is not used. Also, it does not use the name of them for >>> ordering. Once again it uses Ipp. >>> >>> This is common practice in medical image processing software. >>> >>> Sent from my iPad >>> >>> On Jul 6, 2017, at 12:11 PM, Sean Sethi wrote: >>> >>> Hi everyone, >>> >>> I am encountering a dicom read issue with data that was processed using >>> a collapsing filter by our software. The original data >>> is >>> 0.5x0.5x1 mm^3 which is collapsed to a dataset of 1x1x2 mm^3. >>> >>> >>> The first error that is noticed is the data appear squished axially, and >>> the slice thickness is incorrectly read, even though the header file has >>> the correct information. (slice thickness=2, spacing between slices=2). >>> >>> The second error that I see is due to it incorrectly reading the >>> numbering of the dicoms. It shows every 11th or so image as out of order, >>> which is coming from reading the numbers in order of 1, 10, 11, 12 etc >>> instead of 1, 2,3. When the files are number 01, 02, 03, the issue is >>> corrected, but image still appears squashed. >>> >>> Both the issues are also corrected when the collapsed data is converted >>> to NIFTI. So my question is how should we write our DICOM files so they are >>> read correctly? Are the thicknesses and spacings computed from other >>> tag(s)? >>> >>> Thank you for consideration, >>> >>> Sean >>> >>> >>> -- >>> Sean Sethi, M.S. >>> Research, The MRI Institute for Biomedical Research >>> Data processing, Magnetic Resonance Innovations, Inc. >>> 440 East Ferry Street, Unit #1 >>> Detroit, MI 48202 >>> (313) 758-0065 - Tel >>> (313) 758-0068 - Fax >>> sethisea at gmail.com >>> http://www.mrimaging.com/ >>> http://www.mrinnovations.com >>> >>> _______________________________________________ >>> Community mailing list >>> Community at itk.org >>> http://public.kitware.com/mailman/listinfo/community >>> >>> >> >> >> -- >> Sean Sethi, M.S. >> Research, The MRI Institute for Biomedical Research >> Data processing, Magnetic Resonance Innovations, Inc. >> 440 East Ferry Street, Unit #1 >> Detroit, MI 48202 >> (313) 758-0065 - Tel >> (313) 758-0068 - Fax >> sethisea at gmail.com >> http://www.mrimaging.com/ >> http://www.mrinnovations.com >> >> _______________________________________________ >> Community mailing list >> Community at itk.org >> http://public.kitware.com/mailman/listinfo/community >> >> > -- Ying Wang Research Assistant Department of Biomedical Engineering Wayne State University 440 East Ferry Street Detroit, MI 48202 313-758-0065 - Tel Ext: 30 313-758-0068 - Fax neuying at gmail.com - Email -------------- next part -------------- An HTML attachment was scrubbed... URL: From neuying at gmail.com Thu Jul 6 16:23:39 2017 From: neuying at gmail.com (Ying Wang) Date: Thu, 6 Jul 2017 16:23:39 -0400 Subject: [ITK] Dicom read error In-Reply-To: References: <9AAF885D-8A5D-4182-B322-86CE09B0855E@gmail.com> Message-ID: Our function is down-sample/interpolation, to clear the confusion, the example is down-sample the slice thickness from 1 to 2 mm/pixel. We use the z orientation and the first slice image position with the slice thickness to update all the image positions. Ying On Thu, Jul 6, 2017 at 4:18 PM, Ying Wang wrote: > Hi Francois, > > Does ITK use the tag (0020,0032) to read the image position of patient? > Actually, we already update this information after the interpolation on > each of slices. > > The original image, > 1st slice, (0020,0032) DS [-99.730746057061\-117.69366503814\-55.15114060703] > # 50, 3 ImagePositionPatient > 2nd slice, (0020,0032) DS [-99.730746057061\-117.56660042109\-54.159246165521] > # 50, 3 ImagePositionPatient > That's mean the slice thickness is 1mm/pixel. > > While after interpolation, we saved the image, > 1st slice, (0020,0032) DS [-99.7307\-117.694\-55.1511] # 26, > 3 ImagePositionPatient > 2nd slice,(0020,0032) DS [-99.7307\-117.44\-53.1674] # 26, 3 > ImagePositionPatient > That's mean the slice thickness is 2mm/pixel. > > Does these right? we want to know which tag are you using and we can > modify our software for writing DICOM. Thanks again! > > Ying > > > > On Thu, Jul 6, 2017 at 4:01 PM, Francois Budin > wrote: > >> Hello Sean, >> >> As Bill said, it is the slice location that is used to compute the image >> spacing: The average spacing between all slices is computed and sets as >> your output image interslice spacing. >> For the order of the files though, it is based on the order in which the >> files are given to the image reader. Typically, one uses >> "itk::GDCMSeriesFileNames" and sets an input directory. This will create a >> list of all the files contained in that directory and these files will be >> ordered alphabetically. That means that 1.dcm is after 01.dcm, 2.dcm is >> after 11.dcm, and so on. You can either rename your files to make sure that >> they are ordered correctly, as you did, or use a customized function to >> generate your series of files to read that fits your need. >> >> Hope this helps, >> Fran?ois >> >> On Thu, Jul 6, 2017 at 3:42 PM, Sean Sethi wrote: >> >>> Hi Bill, >>> >>> I shared this information with our developer. We already rewrite image >>> position in our processed data. Can you please look at the data sets which >>> I linked? >>> >>> And I have to disagree about the display of the image. I attached image >>> showing ITK's display of dicoms before and after I renamed the filenames >>> only. You can see the beforehand image where the discontinuities are in >>> coronal and sagittal view. Those headers should be the same since I did not >>> change them. >>> >>> Sean >>> >>> On Thu, Jul 6, 2017 at 2:59 PM, Bill Lorensen >>> wrote: >>> >>>> It's uses the image position patient tag to determine slice location. >>>> Image spacing is not used. Also, it does not use the name of them for >>>> ordering. Once again it uses Ipp. >>>> >>>> This is common practice in medical image processing software. >>>> >>>> Sent from my iPad >>>> >>>> On Jul 6, 2017, at 12:11 PM, Sean Sethi wrote: >>>> >>>> Hi everyone, >>>> >>>> I am encountering a dicom read issue with data that was processed using >>>> a collapsing filter by our software. The original data >>>> is >>>> 0.5x0.5x1 mm^3 which is collapsed to a dataset of 1x1x2 mm^3. >>>> >>>> >>>> The first error that is noticed is the data appear squished axially, >>>> and the slice thickness is incorrectly read, even though the header file >>>> has the correct information. (slice thickness=2, spacing between slices=2). >>>> >>>> The second error that I see is due to it incorrectly reading the >>>> numbering of the dicoms. It shows every 11th or so image as out of order, >>>> which is coming from reading the numbers in order of 1, 10, 11, 12 etc >>>> instead of 1, 2,3. When the files are number 01, 02, 03, the issue is >>>> corrected, but image still appears squashed. >>>> >>>> Both the issues are also corrected when the collapsed data is converted >>>> to NIFTI. So my question is how should we write our DICOM files so they are >>>> read correctly? Are the thicknesses and spacings computed from other >>>> tag(s)? >>>> >>>> Thank you for consideration, >>>> >>>> Sean >>>> >>>> >>>> -- >>>> Sean Sethi, M.S. >>>> Research, The MRI Institute for Biomedical Research >>>> Data processing, Magnetic Resonance Innovations, Inc. >>>> 440 East Ferry Street, Unit #1 >>>> Detroit, MI 48202 >>>> (313) 758-0065 - Tel >>>> (313) 758-0068 - Fax >>>> sethisea at gmail.com >>>> http://www.mrimaging.com/ >>>> http://www.mrinnovations.com >>>> >>>> _______________________________________________ >>>> Community mailing list >>>> Community at itk.org >>>> http://public.kitware.com/mailman/listinfo/community >>>> >>>> >>> >>> >>> -- >>> Sean Sethi, M.S. >>> Research, The MRI Institute for Biomedical Research >>> Data processing, Magnetic Resonance Innovations, Inc. >>> 440 East Ferry Street, Unit #1 >>> Detroit, MI 48202 >>> (313) 758-0065 - Tel >>> (313) 758-0068 - Fax >>> sethisea at gmail.com >>> http://www.mrimaging.com/ >>> http://www.mrinnovations.com >>> >>> _______________________________________________ >>> Community mailing list >>> Community at itk.org >>> http://public.kitware.com/mailman/listinfo/community >>> >>> >> > > > -- > Ying Wang > Research Assistant > Department of Biomedical Engineering > Wayne State University > > 440 East Ferry Street > Detroit, MI 48202 > 313-758-0065 - Tel Ext: 30 > 313-758-0068 - Fax > neuying at gmail.com - Email > -- Ying Wang Research Assistant Department of Biomedical Engineering Wayne State University 440 East Ferry Street Detroit, MI 48202 313-758-0065 - Tel Ext: 30 313-758-0068 - Fax neuying at gmail.com - Email -------------- next part -------------- An HTML attachment was scrubbed... URL: From bill.lorensen at gmail.com Thu Jul 6 19:40:00 2017 From: bill.lorensen at gmail.com (Bill Lorensen) Date: Thu, 6 Jul 2017 19:40:00 -0400 Subject: [ITK] Dicom read error In-Reply-To: References: <9AAF885D-8A5D-4182-B322-86CE09B0855E@gmail.com> Message-ID: According to the itkGDCMSeriesFileNames documentation, file names should not affect the order of the slices if image position patient and image position orientation are present. We use 0020|0032 for image position patient and 0020|0037 for image orientation. /** \class GDCMSeriesFileNames * \brief Generate a sequence of filenames from a DICOM series. * * This class generates a sequence of files whose filenames point to * a DICOM file. The ordering is based on the following strategy: * Read all images in the directory (assuming there is only one study/series) * * 1. Extract Image Orientation & Image Position from DICOM images, and then * calculate the ordering based on the 3D coordinate of the slice. * 2. If for some reason this information is not found or failed, another * strategy is used: the ordering is based on 'Image Number'. * 3. If this strategy also failed, then the filenames are ordered by * lexicographical order. * * If multiple volumes are being grouped as a single series for your * DICOM objects, you may want to try calling SetUseSeriesDetails(true) * prior to calling SetDirectory(). On Thu, Jul 6, 2017 at 4:23 PM, Ying Wang wrote: > Our function is down-sample/interpolation, to clear the confusion, the > example is down-sample the slice thickness from 1 to 2 mm/pixel. > We use the z orientation and the first slice image position with the slice > thickness to update all the image positions. > > Ying > > On Thu, Jul 6, 2017 at 4:18 PM, Ying Wang wrote: >> >> Hi Francois, >> >> Does ITK use the tag (0020,0032) to read the image position of patient? >> Actually, we already update this information after the interpolation on each >> of slices. >> >> The original image, >> 1st slice, (0020,0032) DS >> [-99.730746057061\-117.69366503814\-55.15114060703] # 50, 3 >> ImagePositionPatient >> 2nd slice, (0020,0032) DS >> [-99.730746057061\-117.56660042109\-54.159246165521] # 50, 3 >> ImagePositionPatient >> That's mean the slice thickness is 1mm/pixel. >> >> While after interpolation, we saved the image, >> 1st slice, (0020,0032) DS [-99.7307\-117.694\-55.1511] # 26, >> 3 ImagePositionPatient >> 2nd slice,(0020,0032) DS [-99.7307\-117.44\-53.1674] # 26, 3 >> ImagePositionPatient >> That's mean the slice thickness is 2mm/pixel. >> >> Does these right? we want to know which tag are you using and we can >> modify our software for writing DICOM. Thanks again! >> >> Ying >> >> >> >> On Thu, Jul 6, 2017 at 4:01 PM, Francois Budin >> wrote: >>> >>> Hello Sean, >>> >>> As Bill said, it is the slice location that is used to compute the image >>> spacing: The average spacing between all slices is computed and sets as your >>> output image interslice spacing. >>> For the order of the files though, it is based on the order in which the >>> files are given to the image reader. Typically, one uses >>> "itk::GDCMSeriesFileNames" and sets an input directory. This will create a >>> list of all the files contained in that directory and these files will be >>> ordered alphabetically. That means that 1.dcm is after 01.dcm, 2.dcm is >>> after 11.dcm, and so on. You can either rename your files to make sure that >>> they are ordered correctly, as you did, or use a customized function to >>> generate your series of files to read that fits your need. >>> >>> Hope this helps, >>> Fran?ois >>> >>> On Thu, Jul 6, 2017 at 3:42 PM, Sean Sethi wrote: >>>> >>>> Hi Bill, >>>> >>>> I shared this information with our developer. We already rewrite image >>>> position in our processed data. Can you please look at the data sets which I >>>> linked? >>>> >>>> And I have to disagree about the display of the image. I attached image >>>> showing ITK's display of dicoms before and after I renamed the filenames >>>> only. You can see the beforehand image where the discontinuities are in >>>> coronal and sagittal view. Those headers should be the same since I did not >>>> change them. >>>> >>>> Sean >>>> >>>> On Thu, Jul 6, 2017 at 2:59 PM, Bill Lorensen >>>> wrote: >>>>> >>>>> It's uses the image position patient tag to determine slice location. >>>>> Image spacing is not used. Also, it does not use the name of them for >>>>> ordering. Once again it uses Ipp. >>>>> >>>>> This is common practice in medical image processing software. >>>>> >>>>> Sent from my iPad >>>>> >>>>> On Jul 6, 2017, at 12:11 PM, Sean Sethi wrote: >>>>> >>>>> Hi everyone, >>>>> >>>>> I am encountering a dicom read issue with data that was processed using >>>>> a collapsing filter by our software. The original data is 0.5x0.5x1 mm^3 >>>>> which is collapsed to a dataset of 1x1x2 mm^3. >>>>> >>>>> The first error that is noticed is the data appear squished axially, >>>>> and the slice thickness is incorrectly read, even though the header file has >>>>> the correct information. (slice thickness=2, spacing between slices=2). >>>>> >>>>> The second error that I see is due to it incorrectly reading the >>>>> numbering of the dicoms. It shows every 11th or so image as out of order, >>>>> which is coming from reading the numbers in order of 1, 10, 11, 12 etc >>>>> instead of 1, 2,3. When the files are number 01, 02, 03, the issue is >>>>> corrected, but image still appears squashed. >>>>> >>>>> Both the issues are also corrected when the collapsed data is converted >>>>> to NIFTI. So my question is how should we write our DICOM files so they are >>>>> read correctly? Are the thicknesses and spacings computed from other tag(s)? >>>>> >>>>> Thank you for consideration, >>>>> >>>>> Sean >>>>> >>>>> >>>>> -- >>>>> Sean Sethi, M.S. >>>>> Research, The MRI Institute for Biomedical Research >>>>> Data processing, Magnetic Resonance Innovations, Inc. >>>>> 440 East Ferry Street, Unit #1 >>>>> Detroit, MI 48202 >>>>> (313) 758-0065 - Tel >>>>> (313) 758-0068 - Fax >>>>> sethisea at gmail.com >>>>> http://www.mrimaging.com/ >>>>> http://www.mrinnovations.com >>>>> >>>>> _______________________________________________ >>>>> Community mailing list >>>>> Community at itk.org >>>>> http://public.kitware.com/mailman/listinfo/community >>>> >>>> >>>> >>>> >>>> -- >>>> Sean Sethi, M.S. >>>> Research, The MRI Institute for Biomedical Research >>>> Data processing, Magnetic Resonance Innovations, Inc. >>>> 440 East Ferry Street, Unit #1 >>>> Detroit, MI 48202 >>>> (313) 758-0065 - Tel >>>> (313) 758-0068 - Fax >>>> sethisea at gmail.com >>>> http://www.mrimaging.com/ >>>> http://www.mrinnovations.com >>>> >>>> _______________________________________________ >>>> Community mailing list >>>> Community at itk.org >>>> http://public.kitware.com/mailman/listinfo/community >>>> >>> >> >> >> >> -- >> Ying Wang >> Research Assistant >> Department of Biomedical Engineering >> Wayne State University >> >> 440 East Ferry Street >> Detroit, MI 48202 >> 313-758-0065 - Tel Ext: 30 >> 313-758-0068 - Fax >> neuying at gmail.com - Email > > > > > -- > Ying Wang > Research Assistant > Department of Biomedical Engineering > Wayne State University > > 440 East Ferry Street > Detroit, MI 48202 > 313-758-0065 - Tel Ext: 30 > 313-758-0068 - Fax > neuying at gmail.com - Email -- Unpaid intern in BillsBasement at noware dot com From francois.budin at kitware.com Fri Jul 7 09:02:32 2017 From: francois.budin at kitware.com (Francois Budin) Date: Fri, 7 Jul 2017 09:02:32 -0400 Subject: [ITK] [ITK-dev] No ITK confab meeting on July 7th and July 14th In-Reply-To: References: Message-ID: Hello ITK developers, As a reminder, there will be no ITK confab meeting today (July 7th) and next week (July 14th). See you on July 21st. Francois On Tue, Jul 4, 2017 at 10:32 AM, Francois Budin wrote: > Hello ITK developers, > > There will be no ITK confab meeting on July 7th and July 14th. Meetings > will resume at their normal time on July 21st. > > See you all then! > > Fran?ois > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers From tofijoy at gmail.com Fri Jul 7 11:04:11 2017 From: tofijoy at gmail.com (Fijoy Vadakkumpadan) Date: Fri, 7 Jul 2017 11:04:11 -0400 Subject: [ITK] Writing a 3D image into DICOM series with correct geometry Message-ID: Hello, What is the best way to write a 3D itk::Image to DICOM series in a way that preserves geometry metadata (slice positions, orientation, and spacing)? The itk::Image I'm referring to is coming from a non-DICOM source. I tried to use itk::ImageSeriesWriter with itk::GDCMImageIO as the IO type to do the above writing. But that does not seem to automatically pick up the metadata from the image object - when I read the written series back (using itk::ImageSeriesReader), only the in-plane spacing is correctly set. After some research, I found this example https://itk.org/Wiki/ITK/Examples/DICOM/ResampleDICOM which explicitly sets the metadata dictionary for each slice before writing. Is this the best way? Thanks, --Fijoy -------------- next part -------------- An HTML attachment was scrubbed... URL: From francois.budin at kitware.com Fri Jul 7 12:41:45 2017 From: francois.budin at kitware.com (Francois Budin) Date: Fri, 7 Jul 2017 12:41:45 -0400 Subject: [ITK] Dicom read error In-Reply-To: References: <9AAF885D-8A5D-4182-B322-86CE09B0855E@gmail.com> Message-ID: Hello Ying and Sean, You are correct, you did change the image position of the patient. The spacing is actually computed differently based on what information is provided in the DICOM tags. In your case, the first DICOM you sent (before resampling), the z-spacing is correct only because it is "1". If it had been a different value in your DICOM, ITK (GDCM) would still have set the spacing to the value "1". The image is defined as "MRImageStorage" and it reads the z-spacing in tag 0x0018,0x0088 [1] which is not set. So it sets the default value of "1", which in this case matches what you expect. In the case of the second dataset you sent (after resampling), the image modality is defined as "SecondaryCaptureImageStorage" [2], so it also sets the spacing to the default value "1". As for the order in which the files are read, Bill is correct. The files are ordered by IPP, except if the image modality is "SecondaryCaptureImageStorage". [3] I hope this helps, Francois [1] https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageHelper.cxx#L1096-L1161 [2] https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition/gdcmMediaStorage.cxx#L520-L585 [3] https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/gdcmImageHelper.cxx#L468-L484 On Thu, Jul 6, 2017 at 4:23 PM, Ying Wang wrote: > Our function is down-sample/interpolation, to clear the confusion, the > example is down-sample the slice thickness from 1 to 2 mm/pixel. > We use the z orientation and the first slice image position with the slice > thickness to update all the image positions. > > Ying > > On Thu, Jul 6, 2017 at 4:18 PM, Ying Wang wrote: > >> Hi Francois, >> >> Does ITK use the tag (0020,0032) to read the image position of patient? >> Actually, we already update this information after the interpolation on >> each of slices. >> >> The original image, >> 1st slice, (0020,0032) DS [-99.730746057061\-117.69366503814\-55.15114060703] >> # 50, 3 ImagePositionPatient >> 2nd slice, (0020,0032) DS [-99.730746057061\-117.56660042109\-54.159246165521] >> # 50, 3 ImagePositionPatient >> That's mean the slice thickness is 1mm/pixel. >> >> While after interpolation, we saved the image, >> 1st slice, (0020,0032) DS [-99.7307\-117.694\-55.1511] # 26, >> 3 ImagePositionPatient >> 2nd slice,(0020,0032) DS [-99.7307\-117.44\-53.1674] # 26, >> 3 ImagePositionPatient >> That's mean the slice thickness is 2mm/pixel. >> >> Does these right? we want to know which tag are you using and we can >> modify our software for writing DICOM. Thanks again! >> >> Ying >> >> >> >> On Thu, Jul 6, 2017 at 4:01 PM, Francois Budin < >> francois.budin at kitware.com> wrote: >> >>> Hello Sean, >>> >>> As Bill said, it is the slice location that is used to compute the image >>> spacing: The average spacing between all slices is computed and sets as >>> your output image interslice spacing. >>> For the order of the files though, it is based on the order in which the >>> files are given to the image reader. Typically, one uses >>> "itk::GDCMSeriesFileNames" and sets an input directory. This will create a >>> list of all the files contained in that directory and these files will be >>> ordered alphabetically. That means that 1.dcm is after 01.dcm, 2.dcm is >>> after 11.dcm, and so on. You can either rename your files to make sure that >>> they are ordered correctly, as you did, or use a customized function to >>> generate your series of files to read that fits your need. >>> >>> Hope this helps, >>> Fran?ois >>> >>> On Thu, Jul 6, 2017 at 3:42 PM, Sean Sethi wrote: >>> >>>> Hi Bill, >>>> >>>> I shared this information with our developer. We already rewrite image >>>> position in our processed data. Can you please look at the data sets which >>>> I linked? >>>> >>>> And I have to disagree about the display of the image. I attached image >>>> showing ITK's display of dicoms before and after I renamed the filenames >>>> only. You can see the beforehand image where the discontinuities are in >>>> coronal and sagittal view. Those headers should be the same since I did not >>>> change them. >>>> >>>> Sean >>>> >>>> On Thu, Jul 6, 2017 at 2:59 PM, Bill Lorensen >>>> wrote: >>>> >>>>> It's uses the image position patient tag to determine slice location. >>>>> Image spacing is not used. Also, it does not use the name of them for >>>>> ordering. Once again it uses Ipp. >>>>> >>>>> This is common practice in medical image processing software. >>>>> >>>>> Sent from my iPad >>>>> >>>>> On Jul 6, 2017, at 12:11 PM, Sean Sethi wrote: >>>>> >>>>> Hi everyone, >>>>> >>>>> I am encountering a dicom read issue with data that was processed >>>>> using a collapsing filter by our software. The original data >>>>> is >>>>> 0.5x0.5x1 mm^3 which is collapsed to a dataset of 1x1x2 mm^3. >>>>> >>>>> >>>>> The first error that is noticed is the data appear squished axially, >>>>> and the slice thickness is incorrectly read, even though the header file >>>>> has the correct information. (slice thickness=2, spacing between slices=2). >>>>> >>>>> The second error that I see is due to it incorrectly reading the >>>>> numbering of the dicoms. It shows every 11th or so image as out of order, >>>>> which is coming from reading the numbers in order of 1, 10, 11, 12 etc >>>>> instead of 1, 2,3. When the files are number 01, 02, 03, the issue is >>>>> corrected, but image still appears squashed. >>>>> >>>>> Both the issues are also corrected when the collapsed data is >>>>> converted to NIFTI. So my question is how should we write our DICOM files >>>>> so they are read correctly? Are the thicknesses and spacings computed from >>>>> other tag(s)? >>>>> >>>>> Thank you for consideration, >>>>> >>>>> Sean >>>>> >>>>> >>>>> -- >>>>> Sean Sethi, M.S. >>>>> Research, The MRI Institute for Biomedical Research >>>>> Data processing, Magnetic Resonance Innovations, Inc. >>>>> 440 East Ferry Street, Unit #1 >>>>> Detroit, MI 48202 >>>>> (313) 758-0065 - Tel >>>>> (313) 758-0068 - Fax >>>>> sethisea at gmail.com >>>>> http://www.mrimaging.com/ >>>>> http://www.mrinnovations.com >>>>> >>>>> _______________________________________________ >>>>> Community mailing list >>>>> Community at itk.org >>>>> http://public.kitware.com/mailman/listinfo/community >>>>> >>>>> >>>> >>>> >>>> -- >>>> Sean Sethi, M.S. >>>> Research, The MRI Institute for Biomedical Research >>>> Data processing, Magnetic Resonance Innovations, Inc. >>>> 440 East Ferry Street, Unit #1 >>>> Detroit, MI 48202 >>>> (313) 758-0065 - Tel >>>> (313) 758-0068 - Fax >>>> sethisea at gmail.com >>>> http://www.mrimaging.com/ >>>> http://www.mrinnovations.com >>>> >>>> _______________________________________________ >>>> Community mailing list >>>> Community at itk.org >>>> http://public.kitware.com/mailman/listinfo/community >>>> >>>> >>> >> >> >> -- >> Ying Wang >> Research Assistant >> Department of Biomedical Engineering >> Wayne State University >> >> 440 East Ferry Street >> Detroit, MI 48202 >> 313-758-0065 - Tel Ext: 30 >> 313-758-0068 - Fax >> neuying at gmail.com - Email >> > > > > -- > Ying Wang > Research Assistant > Department of Biomedical Engineering > Wayne State University > > 440 East Ferry Street > Detroit, MI 48202 > 313-758-0065 - Tel Ext: 30 > 313-758-0068 - Fax > neuying at gmail.com - Email > -------------- next part -------------- An HTML attachment was scrubbed... URL: From francois.budin at kitware.com Fri Jul 7 12:43:54 2017 From: francois.budin at kitware.com (Francois Budin) Date: Fri, 7 Jul 2017 12:43:54 -0400 Subject: [ITK] Writing a 3D image into DICOM series with correct geometry In-Reply-To: References: Message-ID: Hello Fijoy, As far as I know this example is the best way to do what you are trying to do. ITK does not currently have an easy way to save an itk::Image as a DICOM series. Thanks, Francois On Fri, Jul 7, 2017 at 11:04 AM, Fijoy Vadakkumpadan wrote: > Hello, > > What is the best way to write a 3D itk::Image to DICOM series in a way > that preserves geometry metadata (slice positions, orientation, and > spacing)? > > The itk::Image I'm referring to is coming from a non-DICOM source. I tried > to use itk::ImageSeriesWriter with itk::GDCMImageIO as the IO type to do > the above writing. But that does not seem to automatically pick up the > metadata from the image object - when I read the written series back (using > itk::ImageSeriesReader), only the in-plane spacing is correctly set. After > some research, I found this example > > https://itk.org/Wiki/ITK/Examples/DICOM/ResampleDICOM > > which explicitly sets the metadata dictionary for each slice before > writing. Is this the best way? > > Thanks, > --Fijoy > > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From neuying at gmail.com Fri Jul 7 15:35:21 2017 From: neuying at gmail.com (Ying Wang) Date: Fri, 7 Jul 2017 15:35:21 -0400 Subject: [ITK] Dicom read error In-Reply-To: References: <9AAF885D-8A5D-4182-B322-86CE09B0855E@gmail.com> Message-ID: Thanks for these information! I have a question about the second dataset, although it is defined as "SecondaryCaptureImageStorage", why it use the default value "1" for spacing between slices? We already put "2" in tag (0018,0088). Ying On Fri, Jul 7, 2017 at 12:41 PM, Francois Budin wrote: > Hello Ying and Sean, > > You are correct, you did change the image position of the patient. The > spacing is actually computed differently based on what information is > provided in the DICOM tags. > In your case, the first DICOM you sent (before resampling), the z-spacing > is correct only because it is "1". If it had been a different value in your > DICOM, ITK (GDCM) would still have > set the spacing to the value "1". The image is defined as "MRImageStorage" > and it reads the z-spacing in tag 0x0018,0x0088 [1] which is not set. So it > sets the default value of "1", which in this > case matches what you expect. > In the case of the second dataset you sent (after resampling), the image > modality is defined as "SecondaryCaptureImageStorage" [2], so it also sets > the spacing to the default value "1". > > As for the order in which the files are read, Bill is correct. The files > are ordered by IPP, except if the image modality is > "SecondaryCaptureImageStorage". [3] > > I hope this helps, > Francois > > [1] https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/ > ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/ > gdcmImageHelper.cxx#L1096-L1161 > [2] https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/ > ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefini > tion/gdcmMediaStorage.cxx#L520-L585 > [3] https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/ > ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat/ > gdcmImageHelper.cxx#L468-L484 > > On Thu, Jul 6, 2017 at 4:23 PM, Ying Wang wrote: > >> Our function is down-sample/interpolation, to clear the confusion, the >> example is down-sample the slice thickness from 1 to 2 mm/pixel. >> We use the z orientation and the first slice image position with the >> slice thickness to update all the image positions. >> >> Ying >> >> On Thu, Jul 6, 2017 at 4:18 PM, Ying Wang wrote: >> >>> Hi Francois, >>> >>> Does ITK use the tag (0020,0032) to read the image position of patient? >>> Actually, we already update this information after the interpolation on >>> each of slices. >>> >>> The original image, >>> 1st slice, (0020,0032) DS [-99.730746057061\-117.69366503814\-55.15114060703] >>> # 50, 3 ImagePositionPatient >>> 2nd slice, (0020,0032) DS [-99.730746057061\-117.56660042109\-54.159246165521] >>> # 50, 3 ImagePositionPatient >>> That's mean the slice thickness is 1mm/pixel. >>> >>> While after interpolation, we saved the image, >>> 1st slice, (0020,0032) DS [-99.7307\-117.694\-55.1511] # >>> 26, 3 ImagePositionPatient >>> 2nd slice,(0020,0032) DS [-99.7307\-117.44\-53.1674] # 26, >>> 3 ImagePositionPatient >>> That's mean the slice thickness is 2mm/pixel. >>> >>> Does these right? we want to know which tag are you using and we can >>> modify our software for writing DICOM. Thanks again! >>> >>> Ying >>> >>> >>> >>> On Thu, Jul 6, 2017 at 4:01 PM, Francois Budin < >>> francois.budin at kitware.com> wrote: >>> >>>> Hello Sean, >>>> >>>> As Bill said, it is the slice location that is used to compute the >>>> image spacing: The average spacing between all slices is computed and sets >>>> as your output image interslice spacing. >>>> For the order of the files though, it is based on the order in which >>>> the files are given to the image reader. Typically, one uses >>>> "itk::GDCMSeriesFileNames" and sets an input directory. This will create a >>>> list of all the files contained in that directory and these files will be >>>> ordered alphabetically. That means that 1.dcm is after 01.dcm, 2.dcm is >>>> after 11.dcm, and so on. You can either rename your files to make sure that >>>> they are ordered correctly, as you did, or use a customized function to >>>> generate your series of files to read that fits your need. >>>> >>>> Hope this helps, >>>> Fran?ois >>>> >>>> On Thu, Jul 6, 2017 at 3:42 PM, Sean Sethi wrote: >>>> >>>>> Hi Bill, >>>>> >>>>> I shared this information with our developer. We already rewrite image >>>>> position in our processed data. Can you please look at the data sets which >>>>> I linked? >>>>> >>>>> And I have to disagree about the display of the image. I attached >>>>> image showing ITK's display of dicoms before and after I renamed the >>>>> filenames only. You can see the beforehand image where the discontinuities >>>>> are in coronal and sagittal view. Those headers should be the same since I >>>>> did not change them. >>>>> >>>>> Sean >>>>> >>>>> On Thu, Jul 6, 2017 at 2:59 PM, Bill Lorensen >>>> > wrote: >>>>> >>>>>> It's uses the image position patient tag to determine slice location. >>>>>> Image spacing is not used. Also, it does not use the name of them for >>>>>> ordering. Once again it uses Ipp. >>>>>> >>>>>> This is common practice in medical image processing software. >>>>>> >>>>>> Sent from my iPad >>>>>> >>>>>> On Jul 6, 2017, at 12:11 PM, Sean Sethi wrote: >>>>>> >>>>>> Hi everyone, >>>>>> >>>>>> I am encountering a dicom read issue with data that was processed >>>>>> using a collapsing filter by our software. The original data >>>>>> is >>>>>> 0.5x0.5x1 mm^3 which is collapsed to a dataset of 1x1x2 mm^3. >>>>>> >>>>>> >>>>>> The first error that is noticed is the data appear squished axially, >>>>>> and the slice thickness is incorrectly read, even though the header file >>>>>> has the correct information. (slice thickness=2, spacing between slices=2). >>>>>> >>>>>> The second error that I see is due to it incorrectly reading the >>>>>> numbering of the dicoms. It shows every 11th or so image as out of order, >>>>>> which is coming from reading the numbers in order of 1, 10, 11, 12 etc >>>>>> instead of 1, 2,3. When the files are number 01, 02, 03, the issue is >>>>>> corrected, but image still appears squashed. >>>>>> >>>>>> Both the issues are also corrected when the collapsed data is >>>>>> converted to NIFTI. So my question is how should we write our DICOM files >>>>>> so they are read correctly? Are the thicknesses and spacings computed from >>>>>> other tag(s)? >>>>>> >>>>>> Thank you for consideration, >>>>>> >>>>>> Sean >>>>>> >>>>>> >>>>>> -- >>>>>> Sean Sethi, M.S. >>>>>> Research, The MRI Institute for Biomedical Research >>>>>> Data processing, Magnetic Resonance Innovations, Inc. >>>>>> 440 East Ferry Street, Unit #1 >>>>>> Detroit, MI 48202 >>>>>> (313) 758-0065 - Tel >>>>>> (313) 758-0068 - Fax >>>>>> sethisea at gmail.com >>>>>> http://www.mrimaging.com/ >>>>>> http://www.mrinnovations.com >>>>>> >>>>>> _______________________________________________ >>>>>> Community mailing list >>>>>> Community at itk.org >>>>>> http://public.kitware.com/mailman/listinfo/community >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Sean Sethi, M.S. >>>>> Research, The MRI Institute for Biomedical Research >>>>> Data processing, Magnetic Resonance Innovations, Inc. >>>>> 440 East Ferry Street, Unit #1 >>>>> Detroit, MI 48202 >>>>> (313) 758-0065 - Tel >>>>> (313) 758-0068 - Fax >>>>> sethisea at gmail.com >>>>> http://www.mrimaging.com/ >>>>> http://www.mrinnovations.com >>>>> >>>>> _______________________________________________ >>>>> Community mailing list >>>>> Community at itk.org >>>>> http://public.kitware.com/mailman/listinfo/community >>>>> >>>>> >>>> >>> >>> >>> -- >>> Ying Wang >>> Research Assistant >>> Department of Biomedical Engineering >>> Wayne State University >>> >>> 440 East Ferry Street >>> Detroit, MI 48202 >>> 313-758-0065 - Tel Ext: 30 >>> 313-758-0068 - Fax >>> neuying at gmail.com - Email >>> >> >> >> >> -- >> Ying Wang >> Research Assistant >> Department of Biomedical Engineering >> Wayne State University >> >> 440 East Ferry Street >> Detroit, MI 48202 >> 313-758-0065 - Tel Ext: 30 >> 313-758-0068 - Fax >> neuying at gmail.com - Email >> > > -- Ying Wang Research Assistant Department of Biomedical Engineering Wayne State University 440 East Ferry Street Detroit, MI 48202 313-758-0065 - Tel Ext: 30 313-758-0068 - Fax neuying at gmail.com - Email -------------- next part -------------- An HTML attachment was scrubbed... URL: From tobias.wood at kcl.ac.uk Fri Jul 7 16:41:32 2017 From: tobias.wood at kcl.ac.uk (Wood, Tobias) Date: Fri, 7 Jul 2017 20:41:32 +0000 Subject: [ITK] Tests with multi-file input data (Bruker2DSEQ) In-Reply-To: References: <5834E78B-3496-485D-B39D-AF3C35E1374C@kcl.ac.uk> <6DC30F4A-3A7A-4BD9-9974-ED07068BB539@kcl.ac.uk> <94AB32CC-DCB2-4CD2-86A3-1EF3485C85AD@kcl.ac.uk> Message-ID: <2FBCD81F-A4A1-4BE4-AA08-C9EAE58851B6@kcl.ac.uk> Hello, Sorry for the delay, I?ve pushed my changes to Gerrit. One of the bugs turned out not to be a bug at all - we were acquiring some data wrong. The other bug appears to be not in the Bruker code but somewhere else, I?m still chasing. I added everyone on this thread as a reviewer except D?enan, as he didn?t show up in Gerrit. Interestingly, the original author (Don Bigler), did show up as a reviewer when I was looking for D?enan, so I added him in case he is still contributing! I?m sure there are some parts of this code that could be improved, so I?m expecting a bit of criticism. In particular, for reading the JCAMP-DX header format I took a ?whatever works? approach, as if there is a clean way to read it I don?t see it. Best wishes, Toby On 14/06/2017, 19:24, "Jon Haitz Legarreta" > wrote: Hi Tobias, this is already a huge step in the right direction ! As for the question For my uses, I think the best approach would be to consider 2dseq + visu_pars the minimum, but if the other headers are present read them in to get the meta-data. Is that acceptable? Seems reasonable. You will surely have a better grasp of the format than many of us by now ! Let us know if you encounter further problems, or whether you need help solving the issues. Thanks for the effort. JON HAITZ -- On 14 June 2017 at 16:25, Wood, Tobias > wrote: Thanks Brad, Matt and D?enan - the ITKData target is the crucial one, which also gets picked up by ITKIOBruker2DSEQ-all. The basic test runs and passes now. Back to polishing - I have two bugs, one minor and one a bit more important - that I will try to fix before submitting properly. Best wishes, Toby _______________________________________________ Community mailing list Community at itk.org http://public.kitware.com/mailman/listinfo/community -------------- next part -------------- An HTML attachment was scrubbed... URL: From francois.budin at kitware.com Fri Jul 7 16:42:43 2017 From: francois.budin at kitware.com (Francois Budin) Date: Fri, 7 Jul 2017 16:42:43 -0400 Subject: [ITK] Dicom read error In-Reply-To: References: <9AAF885D-8A5D-4182-B322-86CE09B0855E@gmail.com> Message-ID: Hello Ying, I do not know why this design was chosen in GDCM (default DICOM library used in ITK) for this type of MediaStorage. Maybe a DICOM expert can chip in. However, you can also use DCMTK by activating Module_ITKDCMTK and Module_ITKIODCMTK in ITK's CMake configuration and then use itk::DCMTKImageIO as your image IO. I was successful reading your resampled DICOM after renaming your images (1->01, 2->02,...) Hope this helps, Francois On Fri, Jul 7, 2017 at 3:35 PM, Ying Wang wrote: > Thanks for these information! > > I have a question about the second dataset, although it is defined as "SecondaryCaptureImageStorage", > why it use the default value "1" for spacing between slices? We already > put "2" in tag (0018,0088). > > Ying > > On Fri, Jul 7, 2017 at 12:41 PM, Francois Budin < > francois.budin at kitware.com> wrote: > >> Hello Ying and Sean, >> >> You are correct, you did change the image position of the patient. The >> spacing is actually computed differently based on what information is >> provided in the DICOM tags. >> In your case, the first DICOM you sent (before resampling), the z-spacing >> is correct only because it is "1". If it had been a different value in your >> DICOM, ITK (GDCM) would still have >> set the spacing to the value "1". The image is defined as >> "MRImageStorage" and it reads the z-spacing in tag 0x0018,0x0088 [1] which >> is not set. So it sets the default value of "1", which in this >> case matches what you expect. >> In the case of the second dataset you sent (after resampling), the image >> modality is defined as "SecondaryCaptureImageStorage" [2], so it also sets >> the spacing to the default value "1". >> >> As for the order in which the files are read, Bill is correct. The files >> are ordered by IPP, except if the image modality is >> "SecondaryCaptureImageStorage". [3] >> >> I hope this helps, >> Francois >> >> [1] https://github.com/InsightSoftwareConsortium/ITK/blob/ >> master/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStor >> ageAndFileFormat/gdcmImageHelper.cxx#L1096-L1161 >> [2] https://github.com/InsightSoftwareConsortium/ITK/blob/ >> master/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStruc >> tureAndEncodingDefinition/gdcmMediaStorage.cxx#L520-L585 >> [3] https://github.com/InsightSoftwareConsortium/ITK/blob/ >> master/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStor >> ageAndFileFormat/gdcmImageHelper.cxx#L468-L484 >> >> On Thu, Jul 6, 2017 at 4:23 PM, Ying Wang wrote: >> >>> Our function is down-sample/interpolation, to clear the confusion, the >>> example is down-sample the slice thickness from 1 to 2 mm/pixel. >>> We use the z orientation and the first slice image position with the >>> slice thickness to update all the image positions. >>> >>> Ying >>> >>> On Thu, Jul 6, 2017 at 4:18 PM, Ying Wang wrote: >>> >>>> Hi Francois, >>>> >>>> Does ITK use the tag (0020,0032) to read the image position of patient? >>>> Actually, we already update this information after the interpolation on >>>> each of slices. >>>> >>>> The original image, >>>> 1st slice, (0020,0032) DS [-99.730746057061\-117.69366503814\-55.15114060703] >>>> # 50, 3 ImagePositionPatient >>>> 2nd slice, (0020,0032) DS [-99.730746057061\-117.56660042109\-54.159246165521] >>>> # 50, 3 ImagePositionPatient >>>> That's mean the slice thickness is 1mm/pixel. >>>> >>>> While after interpolation, we saved the image, >>>> 1st slice, (0020,0032) DS [-99.7307\-117.694\-55.1511] # >>>> 26, 3 ImagePositionPatient >>>> 2nd slice,(0020,0032) DS [-99.7307\-117.44\-53.1674] # >>>> 26, 3 ImagePositionPatient >>>> That's mean the slice thickness is 2mm/pixel. >>>> >>>> Does these right? we want to know which tag are you using and we can >>>> modify our software for writing DICOM. Thanks again! >>>> >>>> Ying >>>> >>>> >>>> >>>> On Thu, Jul 6, 2017 at 4:01 PM, Francois Budin < >>>> francois.budin at kitware.com> wrote: >>>> >>>>> Hello Sean, >>>>> >>>>> As Bill said, it is the slice location that is used to compute the >>>>> image spacing: The average spacing between all slices is computed and sets >>>>> as your output image interslice spacing. >>>>> For the order of the files though, it is based on the order in which >>>>> the files are given to the image reader. Typically, one uses >>>>> "itk::GDCMSeriesFileNames" and sets an input directory. This will create a >>>>> list of all the files contained in that directory and these files will be >>>>> ordered alphabetically. That means that 1.dcm is after 01.dcm, 2.dcm is >>>>> after 11.dcm, and so on. You can either rename your files to make sure that >>>>> they are ordered correctly, as you did, or use a customized function to >>>>> generate your series of files to read that fits your need. >>>>> >>>>> Hope this helps, >>>>> Fran?ois >>>>> >>>>> On Thu, Jul 6, 2017 at 3:42 PM, Sean Sethi wrote: >>>>> >>>>>> Hi Bill, >>>>>> >>>>>> I shared this information with our developer. We already rewrite >>>>>> image position in our processed data. Can you please look at the data sets >>>>>> which I linked? >>>>>> >>>>>> And I have to disagree about the display of the image. I attached >>>>>> image showing ITK's display of dicoms before and after I renamed the >>>>>> filenames only. You can see the beforehand image where the discontinuities >>>>>> are in coronal and sagittal view. Those headers should be the same since I >>>>>> did not change them. >>>>>> >>>>>> Sean >>>>>> >>>>>> On Thu, Jul 6, 2017 at 2:59 PM, Bill Lorensen < >>>>>> bill.lorensen at gmail.com> wrote: >>>>>> >>>>>>> It's uses the image position patient tag to determine slice >>>>>>> location. Image spacing is not used. Also, it does not use the name of them >>>>>>> for ordering. Once again it uses Ipp. >>>>>>> >>>>>>> This is common practice in medical image processing software. >>>>>>> >>>>>>> Sent from my iPad >>>>>>> >>>>>>> On Jul 6, 2017, at 12:11 PM, Sean Sethi wrote: >>>>>>> >>>>>>> Hi everyone, >>>>>>> >>>>>>> I am encountering a dicom read issue with data that was processed >>>>>>> using a collapsing filter by our software. The original data >>>>>>> is >>>>>>> 0.5x0.5x1 mm^3 which is collapsed to a dataset of 1x1x2 mm^3. >>>>>>> >>>>>>> >>>>>>> The first error that is noticed is the data appear squished axially, >>>>>>> and the slice thickness is incorrectly read, even though the header file >>>>>>> has the correct information. (slice thickness=2, spacing between slices=2). >>>>>>> >>>>>>> The second error that I see is due to it incorrectly reading the >>>>>>> numbering of the dicoms. It shows every 11th or so image as out of order, >>>>>>> which is coming from reading the numbers in order of 1, 10, 11, 12 etc >>>>>>> instead of 1, 2,3. When the files are number 01, 02, 03, the issue is >>>>>>> corrected, but image still appears squashed. >>>>>>> >>>>>>> Both the issues are also corrected when the collapsed data is >>>>>>> converted to NIFTI. So my question is how should we write our DICOM files >>>>>>> so they are read correctly? Are the thicknesses and spacings computed from >>>>>>> other tag(s)? >>>>>>> >>>>>>> Thank you for consideration, >>>>>>> >>>>>>> Sean >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Sean Sethi, M.S. >>>>>>> Research, The MRI Institute for Biomedical Research >>>>>>> Data processing, Magnetic Resonance Innovations, Inc. >>>>>>> 440 East Ferry Street, Unit #1 >>>>>>> Detroit, MI 48202 >>>>>>> (313) 758-0065 - Tel >>>>>>> (313) 758-0068 - Fax >>>>>>> sethisea at gmail.com >>>>>>> http://www.mrimaging.com/ >>>>>>> http://www.mrinnovations.com >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Community mailing list >>>>>>> Community at itk.org >>>>>>> http://public.kitware.com/mailman/listinfo/community >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Sean Sethi, M.S. >>>>>> Research, The MRI Institute for Biomedical Research >>>>>> Data processing, Magnetic Resonance Innovations, Inc. >>>>>> 440 East Ferry Street, Unit #1 >>>>>> Detroit, MI 48202 >>>>>> (313) 758-0065 - Tel >>>>>> (313) 758-0068 - Fax >>>>>> sethisea at gmail.com >>>>>> http://www.mrimaging.com/ >>>>>> http://www.mrinnovations.com >>>>>> >>>>>> _______________________________________________ >>>>>> Community mailing list >>>>>> Community at itk.org >>>>>> http://public.kitware.com/mailman/listinfo/community >>>>>> >>>>>> >>>>> >>>> >>>> >>>> -- >>>> Ying Wang >>>> Research Assistant >>>> Department of Biomedical Engineering >>>> Wayne State University >>>> >>>> 440 East Ferry Street >>>> Detroit, MI 48202 >>>> 313-758-0065 - Tel Ext: 30 >>>> 313-758-0068 - Fax >>>> neuying at gmail.com - Email >>>> >>> >>> >>> >>> -- >>> Ying Wang >>> Research Assistant >>> Department of Biomedical Engineering >>> Wayne State University >>> >>> 440 East Ferry Street >>> Detroit, MI 48202 >>> 313-758-0065 - Tel Ext: 30 >>> 313-758-0068 - Fax >>> neuying at gmail.com - Email >>> >> >> > > > -- > Ying Wang > Research Assistant > Department of Biomedical Engineering > Wayne State University > > 440 East Ferry Street > Detroit, MI 48202 > 313-758-0065 - Tel Ext: 30 > 313-758-0068 - Fax > neuying at gmail.com - Email > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bill.lorensen at gmail.com Fri Jul 7 17:48:29 2017 From: bill.lorensen at gmail.com (Bill Lorensen) Date: Fri, 7 Jul 2017 17:48:29 -0400 Subject: [ITK] [ITK-dev] Cdash has gone amuck Message-ID: <7C804050-C1A4-4756-A0C7-377D32D2046F@gmail.com> I'm being bombarded by cdash messages. I have turned off email notifications. Bill Sent from my iPad _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers From ahmad.atallah at yandex.com Sat Jul 8 23:02:35 2017 From: ahmad.atallah at yandex.com (ahmad atallah) Date: Sun, 09 Jul 2017 05:02:35 +0200 Subject: [ITK] =?utf-8?q?=5BITK-users=5D_=E2=80=8BGenerating_DRR_Image_thr?= =?utf-8?q?ough_Registration_process_in_terms_of_GPU=E2=80=8B?= Message-ID: <2097401499569355@web7j.yandex.ru> An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From tofijoy at gmail.com Mon Jul 10 11:54:26 2017 From: tofijoy at gmail.com (Fijoy Vadakkumpadan) Date: Mon, 10 Jul 2017 11:54:26 -0400 Subject: [ITK] Writing a 3D image into DICOM series with correct geometry In-Reply-To: References: Message-ID: Hi Francois, Even after explicitly setting the geometry metadata before saving the DICOM series, the metadata is not loaded back when I read the saved image in ITK. I believe ITK saves the metadata (I can see it when I load the saved series in ImageJ), but it's just not loaded back. It seems to me that ITK/GDCM saves the DICOM series under Secondary Capture SOP class by default, and since the geometry metadata are not mandatory for this class, ITK just doesn't load it back. When I change the SOP class (see Stackoverflow post below), the geometry metadata are indeed loaded back. Do you or anyone else here know if there is another appropriate SOP class that we can save images coming from non-DICOM sources such that the geometry metadata are saved & loaded by ITK/GDCM? https://stackoverflow.com/questions/40462879/image-position-orientation-not-written-when-saving-itkimage-as-dicom Thanks, --Fijoy On Fri, Jul 7, 2017 at 12:43 PM, Francois Budin wrote: > Hello Fijoy, > > As far as I know this example is the best way to do what you are trying to > do. ITK does not currently have an easy way to save an itk::Image as a > DICOM series. > Thanks, > > Francois > > On Fri, Jul 7, 2017 at 11:04 AM, Fijoy Vadakkumpadan > wrote: > >> Hello, >> >> What is the best way to write a 3D itk::Image to DICOM series in a way >> that preserves geometry metadata (slice positions, orientation, and >> spacing)? >> >> The itk::Image I'm referring to is coming from a non-DICOM source. I >> tried to use itk::ImageSeriesWriter with itk::GDCMImageIO as the IO type to >> do the above writing. But that does not seem to automatically pick up the >> metadata from the image object - when I read the written series back (using >> itk::ImageSeriesReader), only the in-plane spacing is correctly set. After >> some research, I found this example >> >> https://itk.org/Wiki/ITK/Examples/DICOM/ResampleDICOM >> >> which explicitly sets the metadata dictionary for each slice before >> writing. Is this the best way? >> >> Thanks, >> --Fijoy >> >> _______________________________________________ >> Community mailing list >> Community at itk.org >> http://public.kitware.com/mailman/listinfo/community >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From tobias.wood at kcl.ac.uk Mon Jul 10 16:12:02 2017 From: tobias.wood at kcl.ac.uk (Wood, Tobias) Date: Mon, 10 Jul 2017 20:12:02 +0000 Subject: [ITK] SetupForDevelopment.sh Message-ID: Hello, As part of my attempt to get my Bruker updates pushed I ran Utilities/SetupForDevelopment.sh. Unfortunately, I don?t think it?s worked quite correctly, perhaps because I made one other contribution a long time ago (I don?t remember having to run this script before) and so had a partially complete profile? I have a couple of issues: 1) git now reports that the following files in Utilities/DevelopmentSetupScripts/ are new untracked file: Utilities/DevelopmentSetupScripts/.gitattributes Utilities/DevelopmentSetupScripts/.gitignore Utilities/DevelopmentSetupScripts/LICENSE Utilities/DevelopmentSetupScripts/NOTICE Utilities/DevelopmentSetupScripts/commit-msg Utilities/DevelopmentSetupScripts/gerrit/ Utilities/DevelopmentSetupScripts/hooks-config.bash Utilities/DevelopmentSetupScripts/post-commit Utilities/DevelopmentSetupScripts/pre-commit Utilities/DevelopmentSetupScripts/pre-push Utilities/DevelopmentSetupScripts/prepare-commit-msg The only entry in the .gitignore is ?*.sample?, which doesn?t cover these but for some reason I don?t understand the scripts don?t show up. I assume I shouldn?t commit these files to my feature branch?! 2) git gerrit-push doesn?t work. I can manually run Utilities/Git/git-gerrit-push but no git alias seems to have been created. Re-running Utilities/DevelopmentSetupScripts/SetupGitAliases.sh doesn?t do anything. 3) I *think* I had to manually create the review.source.kitware.com remotes. Sorry, I was doing this late at the weekend and lost track. Any help repairing my repo to work smoothly with gerrit is much appreciated, Toby From dzenanz at gmail.com Tue Jul 11 08:42:54 2017 From: dzenanz at gmail.com (=?UTF-8?B?RMW+ZW5hbiBadWtpxIc=?=) Date: Tue, 11 Jul 2017 08:42:54 -0400 Subject: [ITK] SetupForDevelopment.sh In-Reply-To: References: Message-ID: Hi Tobias, the easiest and most reliable fix is to clone the repository into a new folder, run Utilities/SetupForDevelopment.sh, then copy there changed files from your old (partially corrupted) repository. Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Mon, Jul 10, 2017 at 4:12 PM, Wood, Tobias wrote: > Hello, > > As part of my attempt to get my Bruker updates pushed I ran > Utilities/SetupForDevelopment.sh. Unfortunately, I don?t think it?s > worked quite correctly, perhaps because I made one other contribution a > long time ago (I don?t remember having to run this script before) and so > had a partially complete profile? > > I have a couple of issues: > 1) git now reports that the following files in Utilities/DevelopmentSetupScripts/ > are new untracked file: > Utilities/DevelopmentSetupScripts/.gitattributes > Utilities/DevelopmentSetupScripts/.gitignore > Utilities/DevelopmentSetupScripts/LICENSE > Utilities/DevelopmentSetupScripts/NOTICE > Utilities/DevelopmentSetupScripts/commit-msg > Utilities/DevelopmentSetupScripts/gerrit/ > Utilities/DevelopmentSetupScripts/hooks-config.bash > Utilities/DevelopmentSetupScripts/post-commit > Utilities/DevelopmentSetupScripts/pre-commit > Utilities/DevelopmentSetupScripts/pre-push > Utilities/DevelopmentSetupScripts/prepare-commit-msg > The only entry in the .gitignore is ?*.sample?, which doesn?t cover these > but for some reason I don?t understand the scripts don?t show up. I assume > I shouldn?t commit these files to my feature branch?! > 2) git gerrit-push doesn?t work. I can manually run > Utilities/Git/git-gerrit-push but no git alias seems to have been created. > Re-running Utilities/DevelopmentSetupScripts/SetupGitAliases.sh doesn?t > do anything. > 3) I *think* I had to manually create the review.source.kitware.com > remotes. Sorry, I was doing this late at the weekend and lost track. > > Any help repairing my repo to work smoothly with gerrit is much > appreciated, > Toby > > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > -------------- next part -------------- An HTML attachment was scrubbed... URL: From neuying at gmail.com Tue Jul 11 15:11:30 2017 From: neuying at gmail.com (Ying Wang) Date: Tue, 11 Jul 2017 15:11:30 -0400 Subject: [ITK] Dicom read error In-Reply-To: References: <9AAF885D-8A5D-4182-B322-86CE09B0855E@gmail.com> Message-ID: Hi Francois, Thanks your help. We have solve the problem. The bug is related with SOPClassUID, current we saved as "SecondaryCaptureImageStorage", after I changed to "MRImageStorage", the data can load correctly in ITK-SNAP. So, I think ITK must have some restriction on the "SecondaryCaptureImageStorage" data, it returned here and failed to read the actual image parameters. Thanks! Ying On Fri, Jul 7, 2017 at 4:42 PM, Francois Budin wrote: > Hello Ying, > > I do not know why this design was chosen in GDCM (default DICOM library > used in ITK) for this type of MediaStorage. Maybe a DICOM expert can chip > in. > However, you can also use DCMTK by activating Module_ITKDCMTK and > Module_ITKIODCMTK in ITK's CMake configuration and then use > itk::DCMTKImageIO as your image IO. > I was successful reading your resampled DICOM after renaming your images > (1->01, 2->02,...) > > Hope this helps, > Francois > > On Fri, Jul 7, 2017 at 3:35 PM, Ying Wang wrote: > >> Thanks for these information! >> >> I have a question about the second dataset, although it is defined as >> "SecondaryCaptureImageStorage", why it use the default value "1" for spacing >> between slices? We already put "2" in tag (0018,0088). >> >> Ying >> >> On Fri, Jul 7, 2017 at 12:41 PM, Francois Budin < >> francois.budin at kitware.com> wrote: >> >>> Hello Ying and Sean, >>> >>> You are correct, you did change the image position of the patient. The >>> spacing is actually computed differently based on what information is >>> provided in the DICOM tags. >>> In your case, the first DICOM you sent (before resampling), the >>> z-spacing is correct only because it is "1". If it had been a different >>> value in your DICOM, ITK (GDCM) would still have >>> set the spacing to the value "1". The image is defined as >>> "MRImageStorage" and it reads the z-spacing in tag 0x0018,0x0088 [1] which >>> is not set. So it sets the default value of "1", which in this >>> case matches what you expect. >>> In the case of the second dataset you sent (after resampling), the image >>> modality is defined as "SecondaryCaptureImageStorage" [2], so it also sets >>> the spacing to the default value "1". >>> >>> As for the order in which the files are read, Bill is correct. The files >>> are ordered by IPP, except if the image modality is >>> "SecondaryCaptureImageStorage". [3] >>> >>> I hope this helps, >>> Francois >>> >>> [1] https://github.com/InsightSoftwareConsortium/ITK/blob/master >>> /Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFil >>> eFormat/gdcmImageHelper.cxx#L1096-L1161 >>> [2] https://github.com/InsightSoftwareConsortium/ITK/blob/master >>> /Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEn >>> codingDefinition/gdcmMediaStorage.cxx#L520-L585 >>> [3] https://github.com/InsightSoftwareConsortium/ITK/blob/master >>> /Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFil >>> eFormat/gdcmImageHelper.cxx#L468-L484 >>> >>> On Thu, Jul 6, 2017 at 4:23 PM, Ying Wang wrote: >>> >>>> Our function is down-sample/interpolation, to clear the confusion, the >>>> example is down-sample the slice thickness from 1 to 2 mm/pixel. >>>> We use the z orientation and the first slice image position with the >>>> slice thickness to update all the image positions. >>>> >>>> Ying >>>> >>>> On Thu, Jul 6, 2017 at 4:18 PM, Ying Wang wrote: >>>> >>>>> Hi Francois, >>>>> >>>>> Does ITK use the tag (0020,0032) to read the image position of >>>>> patient? Actually, we already update this information after the >>>>> interpolation on each of slices. >>>>> >>>>> The original image, >>>>> 1st slice, (0020,0032) DS [-99.730746057061\-117.69366503814\-55.15114060703] >>>>> # 50, 3 ImagePositionPatient >>>>> 2nd slice, (0020,0032) DS [-99.730746057061\-117.56660042109\-54.159246165521] >>>>> # 50, 3 ImagePositionPatient >>>>> That's mean the slice thickness is 1mm/pixel. >>>>> >>>>> While after interpolation, we saved the image, >>>>> 1st slice, (0020,0032) DS [-99.7307\-117.694\-55.1511] # >>>>> 26, 3 ImagePositionPatient >>>>> 2nd slice,(0020,0032) DS [-99.7307\-117.44\-53.1674] # >>>>> 26, 3 ImagePositionPatient >>>>> That's mean the slice thickness is 2mm/pixel. >>>>> >>>>> Does these right? we want to know which tag are you using and we can >>>>> modify our software for writing DICOM. Thanks again! >>>>> >>>>> Ying >>>>> >>>>> >>>>> >>>>> On Thu, Jul 6, 2017 at 4:01 PM, Francois Budin < >>>>> francois.budin at kitware.com> wrote: >>>>> >>>>>> Hello Sean, >>>>>> >>>>>> As Bill said, it is the slice location that is used to compute the >>>>>> image spacing: The average spacing between all slices is computed and sets >>>>>> as your output image interslice spacing. >>>>>> For the order of the files though, it is based on the order in which >>>>>> the files are given to the image reader. Typically, one uses >>>>>> "itk::GDCMSeriesFileNames" and sets an input directory. This will create a >>>>>> list of all the files contained in that directory and these files will be >>>>>> ordered alphabetically. That means that 1.dcm is after 01.dcm, 2.dcm is >>>>>> after 11.dcm, and so on. You can either rename your files to make sure that >>>>>> they are ordered correctly, as you did, or use a customized function to >>>>>> generate your series of files to read that fits your need. >>>>>> >>>>>> Hope this helps, >>>>>> Fran?ois >>>>>> >>>>>> On Thu, Jul 6, 2017 at 3:42 PM, Sean Sethi >>>>>> wrote: >>>>>> >>>>>>> Hi Bill, >>>>>>> >>>>>>> I shared this information with our developer. We already rewrite >>>>>>> image position in our processed data. Can you please look at the data sets >>>>>>> which I linked? >>>>>>> >>>>>>> And I have to disagree about the display of the image. I attached >>>>>>> image showing ITK's display of dicoms before and after I renamed the >>>>>>> filenames only. You can see the beforehand image where the discontinuities >>>>>>> are in coronal and sagittal view. Those headers should be the same since I >>>>>>> did not change them. >>>>>>> >>>>>>> Sean >>>>>>> >>>>>>> On Thu, Jul 6, 2017 at 2:59 PM, Bill Lorensen < >>>>>>> bill.lorensen at gmail.com> wrote: >>>>>>> >>>>>>>> It's uses the image position patient tag to determine slice >>>>>>>> location. Image spacing is not used. Also, it does not use the name of them >>>>>>>> for ordering. Once again it uses Ipp. >>>>>>>> >>>>>>>> This is common practice in medical image processing software. >>>>>>>> >>>>>>>> Sent from my iPad >>>>>>>> >>>>>>>> On Jul 6, 2017, at 12:11 PM, Sean Sethi wrote: >>>>>>>> >>>>>>>> Hi everyone, >>>>>>>> >>>>>>>> I am encountering a dicom read issue with data that was processed >>>>>>>> using a collapsing filter by our software. The original data >>>>>>>> is >>>>>>>> 0.5x0.5x1 mm^3 which is collapsed to a dataset of 1x1x2 mm^3. >>>>>>>> >>>>>>>> >>>>>>>> The first error that is noticed is the data appear squished >>>>>>>> axially, and the slice thickness is incorrectly read, even though the >>>>>>>> header file has the correct information. (slice thickness=2, spacing >>>>>>>> between slices=2). >>>>>>>> >>>>>>>> The second error that I see is due to it incorrectly reading the >>>>>>>> numbering of the dicoms. It shows every 11th or so image as out of order, >>>>>>>> which is coming from reading the numbers in order of 1, 10, 11, 12 etc >>>>>>>> instead of 1, 2,3. When the files are number 01, 02, 03, the issue is >>>>>>>> corrected, but image still appears squashed. >>>>>>>> >>>>>>>> Both the issues are also corrected when the collapsed data is >>>>>>>> converted to NIFTI. So my question is how should we write our DICOM files >>>>>>>> so they are read correctly? Are the thicknesses and spacings computed from >>>>>>>> other tag(s)? >>>>>>>> >>>>>>>> Thank you for consideration, >>>>>>>> >>>>>>>> Sean >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Sean Sethi, M.S. >>>>>>>> Research, The MRI Institute for Biomedical Research >>>>>>>> Data processing, Magnetic Resonance Innovations, Inc. >>>>>>>> 440 East Ferry Street, Unit #1 >>>>>>>> Detroit, MI 48202 >>>>>>>> (313) 758-0065 - Tel >>>>>>>> (313) 758-0068 - Fax >>>>>>>> sethisea at gmail.com >>>>>>>> http://www.mrimaging.com/ >>>>>>>> http://www.mrinnovations.com >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Community mailing list >>>>>>>> Community at itk.org >>>>>>>> http://public.kitware.com/mailman/listinfo/community >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Sean Sethi, M.S. >>>>>>> Research, The MRI Institute for Biomedical Research >>>>>>> Data processing, Magnetic Resonance Innovations, Inc. >>>>>>> 440 East Ferry Street, Unit #1 >>>>>>> Detroit, MI 48202 >>>>>>> (313) 758-0065 - Tel >>>>>>> (313) 758-0068 - Fax >>>>>>> sethisea at gmail.com >>>>>>> http://www.mrimaging.com/ >>>>>>> http://www.mrinnovations.com >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Community mailing list >>>>>>> Community at itk.org >>>>>>> http://public.kitware.com/mailman/listinfo/community >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Ying Wang >>>>> Research Assistant >>>>> Department of Biomedical Engineering >>>>> Wayne State University >>>>> >>>>> 440 East Ferry Street >>>>> Detroit, MI 48202 >>>>> 313-758-0065 - Tel Ext: 30 >>>>> 313-758-0068 - Fax >>>>> neuying at gmail.com - Email >>>>> >>>> >>>> >>>> >>>> -- >>>> Ying Wang >>>> Research Assistant >>>> Department of Biomedical Engineering >>>> Wayne State University >>>> >>>> 440 East Ferry Street >>>> Detroit, MI 48202 >>>> 313-758-0065 - Tel Ext: 30 >>>> 313-758-0068 - Fax >>>> neuying at gmail.com - Email >>>> >>> >>> >> >> >> -- >> Ying Wang >> Research Assistant >> Department of Biomedical Engineering >> Wayne State University >> >> 440 East Ferry Street >> Detroit, MI 48202 >> 313-758-0065 - Tel Ext: 30 >> 313-758-0068 - Fax >> neuying at gmail.com - Email >> > > -- Ying Wang Research Assistant Department of Biomedical Engineering Wayne State University 440 East Ferry Street Detroit, MI 48202 313-758-0065 - Tel Ext: 30 313-758-0068 - Fax neuying at gmail.com - Email -------------- next part -------------- An HTML attachment was scrubbed... URL: From francois.budin at kitware.com Tue Jul 11 16:25:02 2017 From: francois.budin at kitware.com (Francois Budin) Date: Tue, 11 Jul 2017 16:25:02 -0400 Subject: [ITK] Dicom read error In-Reply-To: References: <9AAF885D-8A5D-4182-B322-86CE09B0855E@gmail.com> Message-ID: Thank you Ying for the follow-up. I am glad you solved your problem. On Tue, Jul 11, 2017 at 3:11 PM, Ying Wang wrote: > Hi Francois, > > Thanks your help. We have solve the problem. The bug is related > with SOPClassUID, current we saved as "SecondaryCaptureImageStorage", > after I changed to "MRImageStorage", the data can load correctly in > ITK-SNAP. > > So, I think ITK must have some restriction on the " > SecondaryCaptureImageStorage" data, it returned here and failed to read > the actual image parameters. > > Thanks! > > Ying > > On Fri, Jul 7, 2017 at 4:42 PM, Francois Budin > wrote: > >> Hello Ying, >> >> I do not know why this design was chosen in GDCM (default DICOM library >> used in ITK) for this type of MediaStorage. Maybe a DICOM expert can chip >> in. >> However, you can also use DCMTK by activating Module_ITKDCMTK and >> Module_ITKIODCMTK in ITK's CMake configuration and then use >> itk::DCMTKImageIO as your image IO. >> I was successful reading your resampled DICOM after renaming your images >> (1->01, 2->02,...) >> >> Hope this helps, >> Francois >> >> On Fri, Jul 7, 2017 at 3:35 PM, Ying Wang wrote: >> >>> Thanks for these information! >>> >>> I have a question about the second dataset, although it is defined as >>> "SecondaryCaptureImageStorage", why it use the default value "1" for spacing >>> between slices? We already put "2" in tag (0018,0088). >>> >>> Ying >>> >>> On Fri, Jul 7, 2017 at 12:41 PM, Francois Budin < >>> francois.budin at kitware.com> wrote: >>> >>>> Hello Ying and Sean, >>>> >>>> You are correct, you did change the image position of the patient. The >>>> spacing is actually computed differently based on what information is >>>> provided in the DICOM tags. >>>> In your case, the first DICOM you sent (before resampling), the >>>> z-spacing is correct only because it is "1". If it had been a different >>>> value in your DICOM, ITK (GDCM) would still have >>>> set the spacing to the value "1". The image is defined as >>>> "MRImageStorage" and it reads the z-spacing in tag 0x0018,0x0088 [1] which >>>> is not set. So it sets the default value of "1", which in this >>>> case matches what you expect. >>>> In the case of the second dataset you sent (after resampling), the >>>> image modality is defined as "SecondaryCaptureImageStorage" [2], so it also >>>> sets the spacing to the default value "1". >>>> >>>> As for the order in which the files are read, Bill is correct. The >>>> files are ordered by IPP, except if the image modality is >>>> "SecondaryCaptureImageStorage". [3] >>>> >>>> I hope this helps, >>>> Francois >>>> >>>> [1] https://github.com/InsightSoftwareConsortium/ITK/blob/master >>>> /Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFile >>>> Format/gdcmImageHelper.cxx#L1096-L1161 >>>> [2] https://github.com/InsightSoftwareConsortium/ITK/blob/master >>>> /Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEnc >>>> odingDefinition/gdcmMediaStorage.cxx#L520-L585 >>>> [3] https://github.com/InsightSoftwareConsortium/ITK/blob/master >>>> /Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFile >>>> Format/gdcmImageHelper.cxx#L468-L484 >>>> >>>> On Thu, Jul 6, 2017 at 4:23 PM, Ying Wang wrote: >>>> >>>>> Our function is down-sample/interpolation, to clear the confusion, the >>>>> example is down-sample the slice thickness from 1 to 2 mm/pixel. >>>>> We use the z orientation and the first slice image position with the >>>>> slice thickness to update all the image positions. >>>>> >>>>> Ying >>>>> >>>>> On Thu, Jul 6, 2017 at 4:18 PM, Ying Wang wrote: >>>>> >>>>>> Hi Francois, >>>>>> >>>>>> Does ITK use the tag (0020,0032) to read the image position of >>>>>> patient? Actually, we already update this information after the >>>>>> interpolation on each of slices. >>>>>> >>>>>> The original image, >>>>>> 1st slice, (0020,0032) DS [-99.730746057061\-117.69366503814\-55.15114060703] >>>>>> # 50, 3 ImagePositionPatient >>>>>> 2nd slice, (0020,0032) DS [-99.730746057061\-117.56660042109\-54.159246165521] >>>>>> # 50, 3 ImagePositionPatient >>>>>> That's mean the slice thickness is 1mm/pixel. >>>>>> >>>>>> While after interpolation, we saved the image, >>>>>> 1st slice, (0020,0032) DS [-99.7307\-117.694\-55.1511] # >>>>>> 26, 3 ImagePositionPatient >>>>>> 2nd slice,(0020,0032) DS [-99.7307\-117.44\-53.1674] # >>>>>> 26, 3 ImagePositionPatient >>>>>> That's mean the slice thickness is 2mm/pixel. >>>>>> >>>>>> Does these right? we want to know which tag are you using and we can >>>>>> modify our software for writing DICOM. Thanks again! >>>>>> >>>>>> Ying >>>>>> >>>>>> >>>>>> >>>>>> On Thu, Jul 6, 2017 at 4:01 PM, Francois Budin < >>>>>> francois.budin at kitware.com> wrote: >>>>>> >>>>>>> Hello Sean, >>>>>>> >>>>>>> As Bill said, it is the slice location that is used to compute the >>>>>>> image spacing: The average spacing between all slices is computed and sets >>>>>>> as your output image interslice spacing. >>>>>>> For the order of the files though, it is based on the order in which >>>>>>> the files are given to the image reader. Typically, one uses >>>>>>> "itk::GDCMSeriesFileNames" and sets an input directory. This will create a >>>>>>> list of all the files contained in that directory and these files will be >>>>>>> ordered alphabetically. That means that 1.dcm is after 01.dcm, 2.dcm is >>>>>>> after 11.dcm, and so on. You can either rename your files to make sure that >>>>>>> they are ordered correctly, as you did, or use a customized function to >>>>>>> generate your series of files to read that fits your need. >>>>>>> >>>>>>> Hope this helps, >>>>>>> Fran?ois >>>>>>> >>>>>>> On Thu, Jul 6, 2017 at 3:42 PM, Sean Sethi >>>>>>> wrote: >>>>>>> >>>>>>>> Hi Bill, >>>>>>>> >>>>>>>> I shared this information with our developer. We already rewrite >>>>>>>> image position in our processed data. Can you please look at the data sets >>>>>>>> which I linked? >>>>>>>> >>>>>>>> And I have to disagree about the display of the image. I attached >>>>>>>> image showing ITK's display of dicoms before and after I renamed the >>>>>>>> filenames only. You can see the beforehand image where the discontinuities >>>>>>>> are in coronal and sagittal view. Those headers should be the same since I >>>>>>>> did not change them. >>>>>>>> >>>>>>>> Sean >>>>>>>> >>>>>>>> On Thu, Jul 6, 2017 at 2:59 PM, Bill Lorensen < >>>>>>>> bill.lorensen at gmail.com> wrote: >>>>>>>> >>>>>>>>> It's uses the image position patient tag to determine slice >>>>>>>>> location. Image spacing is not used. Also, it does not use the name of them >>>>>>>>> for ordering. Once again it uses Ipp. >>>>>>>>> >>>>>>>>> This is common practice in medical image processing software. >>>>>>>>> >>>>>>>>> Sent from my iPad >>>>>>>>> >>>>>>>>> On Jul 6, 2017, at 12:11 PM, Sean Sethi >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> Hi everyone, >>>>>>>>> >>>>>>>>> I am encountering a dicom read issue with data that was processed >>>>>>>>> using a collapsing filter by our software. The original data >>>>>>>>> is >>>>>>>>> 0.5x0.5x1 mm^3 which is collapsed to a dataset of 1x1x2 mm^3. >>>>>>>>> >>>>>>>>> >>>>>>>>> The first error that is noticed is the data appear squished >>>>>>>>> axially, and the slice thickness is incorrectly read, even though the >>>>>>>>> header file has the correct information. (slice thickness=2, spacing >>>>>>>>> between slices=2). >>>>>>>>> >>>>>>>>> The second error that I see is due to it incorrectly reading the >>>>>>>>> numbering of the dicoms. It shows every 11th or so image as out of order, >>>>>>>>> which is coming from reading the numbers in order of 1, 10, 11, 12 etc >>>>>>>>> instead of 1, 2,3. When the files are number 01, 02, 03, the issue is >>>>>>>>> corrected, but image still appears squashed. >>>>>>>>> >>>>>>>>> Both the issues are also corrected when the collapsed data is >>>>>>>>> converted to NIFTI. So my question is how should we write our DICOM files >>>>>>>>> so they are read correctly? Are the thicknesses and spacings computed from >>>>>>>>> other tag(s)? >>>>>>>>> >>>>>>>>> Thank you for consideration, >>>>>>>>> >>>>>>>>> Sean >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Sean Sethi, M.S. >>>>>>>>> Research, The MRI Institute for Biomedical Research >>>>>>>>> Data processing, Magnetic Resonance Innovations, Inc. >>>>>>>>> 440 East Ferry Street, Unit #1 >>>>>>>>> Detroit, MI 48202 >>>>>>>>> (313) 758-0065 - Tel >>>>>>>>> (313) 758-0068 - Fax >>>>>>>>> sethisea at gmail.com >>>>>>>>> http://www.mrimaging.com/ >>>>>>>>> http://www.mrinnovations.com >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> Community mailing list >>>>>>>>> Community at itk.org >>>>>>>>> http://public.kitware.com/mailman/listinfo/community >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Sean Sethi, M.S. >>>>>>>> Research, The MRI Institute for Biomedical Research >>>>>>>> Data processing, Magnetic Resonance Innovations, Inc. >>>>>>>> 440 East Ferry Street, Unit #1 >>>>>>>> Detroit, MI 48202 >>>>>>>> (313) 758-0065 - Tel >>>>>>>> (313) 758-0068 - Fax >>>>>>>> sethisea at gmail.com >>>>>>>> http://www.mrimaging.com/ >>>>>>>> http://www.mrinnovations.com >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Community mailing list >>>>>>>> Community at itk.org >>>>>>>> http://public.kitware.com/mailman/listinfo/community >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Ying Wang >>>>>> Research Assistant >>>>>> Department of Biomedical Engineering >>>>>> Wayne State University >>>>>> >>>>>> 440 East Ferry Street >>>>>> Detroit, MI 48202 >>>>>> 313-758-0065 - Tel Ext: 30 >>>>>> 313-758-0068 - Fax >>>>>> neuying at gmail.com - Email >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Ying Wang >>>>> Research Assistant >>>>> Department of Biomedical Engineering >>>>> Wayne State University >>>>> >>>>> 440 East Ferry Street >>>>> Detroit, MI 48202 >>>>> 313-758-0065 - Tel Ext: 30 >>>>> 313-758-0068 - Fax >>>>> neuying at gmail.com - Email >>>>> >>>> >>>> >>> >>> >>> -- >>> Ying Wang >>> Research Assistant >>> Department of Biomedical Engineering >>> Wayne State University >>> >>> 440 East Ferry Street >>> Detroit, MI 48202 >>> 313-758-0065 - Tel Ext: 30 >>> 313-758-0068 - Fax >>> neuying at gmail.com - Email >>> >> >> > > > -- > Ying Wang > Research Assistant > Department of Biomedical Engineering > Wayne State University > > 440 East Ferry Street > Detroit, MI 48202 > 313-758-0065 - Tel Ext: 30 > 313-758-0068 - Fax > neuying at gmail.com - Email > -------------- next part -------------- An HTML attachment was scrubbed... URL: From oren.a4 at gmail.com Fri Jul 14 03:11:57 2017 From: oren.a4 at gmail.com (Oren) Date: Fri, 14 Jul 2017 10:11:57 +0300 Subject: [ITK] Can python sitk.ReadImage read a list of images? Message-ID: Hello, I do not understand if sitk.ReadImage can read a list of images or not? I did not manage to find an example showing how to list of images should be imputed to the function. But in the function documentations it say: ReadImage(*VectorString fileNames*, itk::simple::PixelIDValueEnum outputPixelType) -> Image ReadImage(std::string const & filename, itk::simple::PixelIDValueEnum outputPixelType) -> Image ReadImage is a procedural interface to the ImageSeriesReader class which is convenient for most image reading tasks. Note that when *reading a series of images* that have meta-data associated with them (e.g. a DICOM series) the resulting image will have an empty meta-data dictionary. It is possible to programmatically add a meta-data dictionary to the compounded image by reading in one or more images from the series using the ImageFileReader class, analyzing the meta-dictionary associated with each of those images and creating one that is relevant for the compounded image. So it seems from the documentations that it is possible. Can someone show me a simple example. I also posted the question in stackoverflow in case anyone else will ask it in the future: https://stackoverflow.com/questions/45096861/can-python-sitk-readimage-read-a-list-series-of-images Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From dzenanz at gmail.com Fri Jul 14 08:49:42 2017 From: dzenanz at gmail.com (=?UTF-8?B?RMW+ZW5hbiBadWtpxIc=?=) Date: Fri, 14 Jul 2017 08:49:42 -0400 Subject: [ITK] Can python sitk.ReadImage read a list of images? In-Reply-To: References: Message-ID: Hi Oren, does ImageSeriesReader work for you? Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Fri, Jul 14, 2017 at 3:11 AM, Oren wrote: > Hello, > I do not understand if sitk.ReadImage can read a list of images or not? I > did not manage to find an example showing how to list of images should be > imputed to the function. > But in the function documentations it say: > > ReadImage(*VectorString fileNames*, itk::simple::PixelIDValueEnum outputPixelType) -> Image > ReadImage(std::string const & filename, itk::simple::PixelIDValueEnum outputPixelType) -> Image > > > > ReadImage is a procedural interface to the ImageSeriesReader class which is convenient for most image reading tasks. > > > Note that when *reading a series of images* that have meta-data > associated with them (e.g. a DICOM series) the resulting image will > have an empty meta-data dictionary. It is possible to programmatically > add a meta-data dictionary to the compounded image by reading in one > or more images from the series using the ImageFileReader class, > analyzing the meta-dictionary associated with each of those images and > creating one that is relevant for the compounded image. > > > > So it seems from the documentations that it is possible. Can someone show > me a simple example. > > I also posted the question in stackoverflow in case anyone else will ask > it in the future: > > https://stackoverflow.com/questions/45096861/can-python- > sitk-readimage-read-a-list-series-of-images > > Thanks. > > > > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From blowekamp at mail.nih.gov Fri Jul 14 09:06:44 2017 From: blowekamp at mail.nih.gov (Lowekamp, Bradley (NIH/NLM/LHC) [C]) Date: Fri, 14 Jul 2017 13:06:44 +0000 Subject: [ITK] Can python sitk.ReadImage read a list of images? In-Reply-To: References: Message-ID: <13F8D09F-8002-40FF-A649-6910AA067436@mail.nih.gov> Please avoid cross posting questions. I?ll repost my answer here for completeness though: SimpleITK uses SWIG to wrap a C++ interface to Insight Segmentation and Registration Toolkit (ITK). As such the inline python documentation should be supplemented with the C++ Doxygen documentation. There is a mapping of C++ types to Python types with robust implicit conversion between them. You can find the documentation for the sitk::ReadImage methods here: https://itk.org/SimpleITKDoxygen/html/namespaceitk_1_1simple.html#ae3b678b5b043c5a8c93aa616d5ee574c Notice there are 2 ReadImage methods, and the Python docstring you listed appears is one of them. From the SimpleITK examples here is a snippet to read a DICOM series: print( "Reading Dicom directory:", sys.argv[1] ) reader = sitk.ImageSeriesReader() dicom_names = reader.GetGDCMSeriesFileNames( sys.argv[1] ) reader.SetFileNames(dicom_names) image = reader.Execute() This uses the class interface as opposed to the procedural. Which would simply be: image = sitk.ReadImage(dicom_names) or generically with a list of string filenames: image = sitk.ReadImage(["image1.png", "image2.png"...]) Many common array like type of strings will be implicitly converted to the SWIG VectorStringtype. From: Oren Date: Friday, July 14, 2017 at 3:12 AM To: "community at itk.org" Subject: [ITK] Can python sitk.ReadImage read a list of images? Hello, I do not understand if sitk.ReadImage can read a list of images or not? I did not manage to find an example showing how to list of images should be imputed to the function. But in the function documentations it say: ReadImage(VectorString fileNames, itk::simple::PixelIDValueEnum outputPixelType) -> Image ReadImage(std::string const & filename, itk::simple::PixelIDValueEnum outputPixelType) -> Image ReadImage is a procedural interface to the ImageSeriesReader class which is convenient for most image reading tasks. Note that when reading a series of images that have meta-data associated with them (e.g. a DICOM series) the resulting image will have an empty meta-data dictionary. It is possible to programmatically add a meta-data dictionary to the compounded image by reading in one or more images from the series using the ImageFileReader class, analyzing the meta-dictionary associated with each of those images and creating one that is relevant for the compounded image. So it seems from the documentations that it is possible. Can someone show me a simple example. I also posted the question in stackoverflow in case anyone else will ask it in the future: https://stackoverflow.com/questions/45096861/can-python-sitk-readimage-read-a-list-series-of-images Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From greina at eng.ucsd.edu Mon Jul 17 18:52:03 2017 From: greina at eng.ucsd.edu (G Reina) Date: Mon, 17 Jul 2017 15:52:03 -0700 Subject: [ITK] [ITK-users] Resizing DICOM images Message-ID: I've seen in pydicom and opencv how to resize a DICOM image to an arbitrary pixel resolution (e.g. going from 512x512 down to 128x128). Does SimpleITK have a way to do this for 3D image volumes (i.e. rescale height, width, and slice at the same time? I'm looking to have a method to make my DICOM volumes uniform in shape. Thanks. -Tony -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From nicolas.courtial at univ-rennes1.fr Tue Jul 18 10:22:15 2017 From: nicolas.courtial at univ-rennes1.fr (Nicolas Courtial) Date: Tue, 18 Jul 2017 16:22:15 +0200 Subject: [ITK] [ITK-users] MultiThreading, ImageRegionIterator crash In-Reply-To: References: <13d4dc31-8fb8-40c1-ccd8-abe4e45555ef@univ-rennes1.fr> Message-ID: Hi everyone, I'm really sorry I haven't given any news since your answer. I had to change my plans to rush other problems I had to deal with. Anyway, yesterday I've had the occasion to think about everything once from the start, and.... Well, it has driven to the classical "Oh dear, how could I miss that". Anyway, the solution was within the question: remindiner: "e/verything is correct, but the index, for which it's completly crazy ([156245468,0,156245468] or something approching)."/ During my algorithm, I needed to create an image to store energy levels. I had for that created a dedicated module. That one was incomplete, and wasn't correclty setting the start index of the image's region. Sorry again about that, and thanks for your advices! Le 07/06/2017 ? 15:34, D?enan Zuki? a ?crit : > Hi Nicolas, > > ThreadedComputation should be called ThreadedGenerateData, otherwise > the code looks OK. If you overrode AllocateOutputs(), then you might > not have allocated the output (assuming index is wrong for imgIt). Can > you provide a runnable example ? > > Regards, > D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) > > On Wed, Jun 7, 2017 at 5:46 AM, Nicolas Courtial > > wrote: > > Hello everyone, > > I'm quite new in ITK world, and I'm currently doing few > experiences in order to learn its logic. > > After few easy exercices, I'm now at a step I want to multithread > a method. > As I did in the past, I've been reading the ITK classes to get > "inspiration", and e- mails from here in case of troubles. > > I'm facing an issue at the moment, and I can't figure why, and how > to solve it. > > My filter works with > > * One 3D InputImage (of any pixel type) > * Two "tool" 3D images, respectively of float and unsigned char > pixel types > > From what I read, I've understood there are two main ways of > multithreading: > > * The old fashioned one using > BeforeThreadedGenerateData/ThreadedGenerateData/AfterThreadedGenerateData > * the one using itk::DomainThreader member. > > As I'm a bit old school, I used the first option. > > My problem remains here: (I changed my variables' name to make it > clearer) > > ThreadedComputation(const OutputImageRegionType > &outputRegionForThread, ThreadIdType threadId) { > itk::ProgressReporter progress(this, threadId, > outputRegionForThread.GetNumberOfPixels()); > typename TOutputImage::Pointer image = this->GetOutput(0); > > itk::ImageRegionIterator< TOutputImage > imgIt(image, > outputRegionForThread); > itk::ImageRegionIterator< FloatImageType> floatIt > (m_MyFloatImage, outputRegionForThread); > .... > > When creating the floatIt iterator, I have a crash. Using a try > catch block, the issue is due to out of bound region. > Everything is correct, but the index, for which it's completly > crazy ([156245468,0,156245468] or something approching). > > I've tried different options to solve this, but rather than doing > witchcraft and at some point getting something working, I'd prefer > to improve my understanding thanks to your expertise. > > Thanks all, > > Nicolas Courtial > > > > > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > > > > > > ------------------------------------------------------------------------ > Logo AVG > > Cet email a fait l'objet d'une analyse antivirus par le logiciel > antivirus AVG. > www.avg.com > > > <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From mariageok777 at hotmail.com Tue Jul 18 10:46:06 2017 From: mariageok777 at hotmail.com (maria kalla) Date: Tue, 18 Jul 2017 14:46:06 +0000 Subject: [ITK] =?iso8859-7?b?0NE6IGl0aw==?= In-Reply-To: References: Message-ID: Hello I would like to ask you something about itk. I work with this program (itk) and I want to do the following: I have modified a method and I want to run it through ITK but I can not do it. I changed ITK_DIR_PATH of CMakeCache.txt but it did not work. What could I do? Thank you -------------- next part -------------- An HTML attachment was scrubbed... URL: From zivrafael.yaniv at nih.gov Tue Jul 18 11:08:46 2017 From: zivrafael.yaniv at nih.gov (Yaniv, Ziv Rafael (NIH/NLM/LHC) [C]) Date: Tue, 18 Jul 2017 15:08:46 +0000 Subject: [ITK] [ITK-users] Resizing DICOM images In-Reply-To: References: Message-ID: <4198F266-AF5B-4539-823F-8A0CB835BB44@mail.nih.gov> Hello Tony, Short answer is yes. To shrink a volume using integral sizes, use the BinShrinkImageFilter (https://itk.org/SimpleITKDoxygen/html/classitk_1_1simple_1_1BinShrinkImageFilter.html). Using the procedural interface to shrink an image by 4 in x, by 4 in y and by 2 in z would be: bShrinkImage = sitk.BinShrink(img, [4,4,2]) The BinShrink filter also averages the neighborhood, so it deals to some extent with potential aliasing. Don?t use this filter if your volume represents a discrete set of labels (i.e. segmentation). Longer answer: For truly arbitrary resizing use the ResampleImageFilter (https://itk.org/SimpleITKDoxygen/html/classitk_1_1simple_1_1ResampleImageFilter.html). Using the procedural interface to modify the original (style is verbose for clarity): new_x_size = 700 #upsample new_y_size = 64 #downsample new_z_size = 5 #downsample new_size = [new_x_size, new_y_size, new_z_size] new_spacing = [old_sz*old_spc/new_sz for old_sz, old_spc, new_sz in zip(img.GetSize(), img.GetSpacing(), new_size)] interpolator_type = sitk.sitkLinear new_img = sitk.Resample(img, new_size, sitk.Transform(), interpolator_type, img.GetOrigin(), new_spacing, img.GetDirection(), 0.0, img.GetPixelIDValue()) The ResampleImageFilter does not deal with aliasing, so if you are downsampling it is recommended to blur prior to resampling. If you are resampling a volume with discrete labels you would use the sitk.sitkNearestNeighbor interpolator type. hope this helps Ziv From: G Reina Date: Monday, July 17, 2017 at 6:52 PM To: "insight-users at itk.org" Subject: [ITK] [ITK-users] Resizing DICOM images I've seen in pydicom and opencv how to resize a DICOM image to an arbitrary pixel resolution (e.g. going from 512x512 down to 128x128). Does SimpleITK have a way to do this for 3D image volumes (i.e. rescale height, width, and slice at the same time? I'm looking to have a method to make my DICOM volumes uniform in shape. Thanks. -Tony -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From greina at eng.ucsd.edu Tue Jul 18 12:34:20 2017 From: greina at eng.ucsd.edu (G Reina) Date: Tue, 18 Jul 2017 09:34:20 -0700 Subject: [ITK] [ITK-users] Resizing DICOM images In-Reply-To: <4198F266-AF5B-4539-823F-8A0CB835BB44@mail.nih.gov> References: <4198F266-AF5B-4539-823F-8A0CB835BB44@mail.nih.gov> Message-ID: Thanks so much. That's very helpful. Tony On Jul 18, 2017 8:09 AM, "Yaniv, Ziv Rafael (NIH/NLM/LHC) [C]" < zivrafael.yaniv at nih.gov> wrote: > Hello Tony, > > > > Short answer is yes. > > > > To shrink a volume using integral sizes, use the BinShrinkImageFilter ( > https://itk.org/SimpleITKDoxygen/html/classitk_1_1simple_1_ > 1BinShrinkImageFilter.html). > > Using the procedural interface to shrink an image by 4 in x, by 4 in y and > by 2 in z would be: > > bShrinkImage = sitk.BinShrink(img, [4,4,2]) > > > > The BinShrink filter also averages the neighborhood, so it deals to some > extent with potential aliasing. Don?t use this filter if your volume > represents a discrete set of labels (i.e. segmentation). > > > > > > Longer answer: > > > > For truly arbitrary resizing use the ResampleImageFilter (https://itk.org/ > SimpleITKDoxygen/html/classitk_1_1simple_1_1ResampleImageFilter.html). > > > > Using the procedural interface to modify the original (style is verbose > for clarity): > > > > new_x_size = 700 #upsample > > new_y_size = 64 #downsample > > new_z_size = 5 #downsample > > new_size = [new_x_size, new_y_size, new_z_size] > > new_spacing = [old_sz*old_spc/new_sz for old_sz, old_spc, new_sz in > zip(img.GetSize(), img.GetSpacing(), new_size)] > > > > interpolator_type = sitk.sitkLinear > > > > new_img = sitk.Resample(img, new_size, sitk.Transform(), > interpolator_type, img.GetOrigin(), new_spacing, img.GetDirection(), 0.0, > img.GetPixelIDValue()) > > > > The ResampleImageFilter does not deal with aliasing, so if you are > downsampling it is recommended to blur prior to resampling. If you are > resampling a volume with discrete labels you would use the > sitk.sitkNearestNeighbor > > interpolator type. > > > > hope this helps > > Ziv > > > > > > > > > > *From: *G Reina > *Date: *Monday, July 17, 2017 at 6:52 PM > *To: *"insight-users at itk.org" > *Subject: *[ITK] [ITK-users] Resizing DICOM images > > > > I've seen in pydicom and opencv how to resize a DICOM image to an > arbitrary pixel resolution (e.g. going from 512x512 down to 128x128). > > > > Does SimpleITK have a way to do this for 3D image volumes (i.e. rescale > height, width, and slice at the same time? > > > > I'm looking to have a method to make my DICOM volumes uniform in shape. > > > > Thanks. > > -Tony > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From bill.lorensen at gmail.com Tue Jul 18 13:31:06 2017 From: bill.lorensen at gmail.com (Bill Lorensen) Date: Tue, 18 Jul 2017 13:31:06 -0400 Subject: [ITK] [ITK-users] Resizing DICOM images In-Reply-To: References: <4198F266-AF5B-4539-823F-8A0CB835BB44@mail.nih.gov> Message-ID: If you don't mind using C++, here is an example: https://itk.org/Wiki/ITK/Examples/DICOM/ResampleDICOM On Tue, Jul 18, 2017 at 12:34 PM, G Reina wrote: > Thanks so much. > > That's very helpful. > > Tony > > On Jul 18, 2017 8:09 AM, "Yaniv, Ziv Rafael (NIH/NLM/LHC) [C]" > wrote: >> >> Hello Tony, >> >> >> >> Short answer is yes. >> >> >> >> To shrink a volume using integral sizes, use the BinShrinkImageFilter >> (https://itk.org/SimpleITKDoxygen/html/classitk_1_1simple_1_1BinShrinkImageFilter.html). >> >> Using the procedural interface to shrink an image by 4 in x, by 4 in y and >> by 2 in z would be: >> >> bShrinkImage = sitk.BinShrink(img, [4,4,2]) >> >> >> >> The BinShrink filter also averages the neighborhood, so it deals to some >> extent with potential aliasing. Don?t use this filter if your volume >> represents a discrete set of labels (i.e. segmentation). >> >> >> >> >> >> Longer answer: >> >> >> >> For truly arbitrary resizing use the ResampleImageFilter >> (https://itk.org/SimpleITKDoxygen/html/classitk_1_1simple_1_1ResampleImageFilter.html). >> >> >> >> Using the procedural interface to modify the original (style is verbose >> for clarity): >> >> >> >> new_x_size = 700 #upsample >> >> new_y_size = 64 #downsample >> >> new_z_size = 5 #downsample >> >> new_size = [new_x_size, new_y_size, new_z_size] >> >> new_spacing = [old_sz*old_spc/new_sz for old_sz, old_spc, new_sz in >> zip(img.GetSize(), img.GetSpacing(), new_size)] >> >> >> >> interpolator_type = sitk.sitkLinear >> >> >> >> new_img = sitk.Resample(img, new_size, sitk.Transform(), >> interpolator_type, img.GetOrigin(), new_spacing, img.GetDirection(), 0.0, >> img.GetPixelIDValue()) >> >> >> >> The ResampleImageFilter does not deal with aliasing, so if you are >> downsampling it is recommended to blur prior to resampling. If you are >> resampling a volume with discrete labels you would use the >> sitk.sitkNearestNeighbor >> >> interpolator type. >> >> >> >> hope this helps >> >> Ziv >> >> >> >> >> >> >> >> >> >> From: G Reina >> Date: Monday, July 17, 2017 at 6:52 PM >> To: "insight-users at itk.org" >> Subject: [ITK] [ITK-users] Resizing DICOM images >> >> >> >> I've seen in pydicom and opencv how to resize a DICOM image to an >> arbitrary pixel resolution (e.g. going from 512x512 down to 128x128). >> >> >> >> Does SimpleITK have a way to do this for 3D image volumes (i.e. rescale >> height, width, and slice at the same time? >> >> >> >> I'm looking to have a method to make my DICOM volumes uniform in shape. >> >> >> >> Thanks. >> >> -Tony >> >> > > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > -- Unpaid intern in BillsBasement at noware dot com _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From matt.mccormick at kitware.com Tue Jul 18 15:55:53 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Tue, 18 Jul 2017 15:55:53 -0400 Subject: [ITK] =?utf-8?b?zqDOoTogaXRr?= In-Reply-To: References: Message-ID: Hello, Welcome to ITK! What did not work as expected? Matt On Tue, Jul 18, 2017 at 10:46 AM, maria kalla wrote: > Hello > > I would like to ask you something about itk. > > I work with this program (itk) and I want to do the following: I have > modified a method and I want to run it through ITK but I can not do it. I > changed ITK_DIR_PATH of CMakeCache.txt but it did not work. > What could I do? > > Thank you > > > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > From matt.mccormick at kitware.com Tue Jul 18 16:04:34 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Tue, 18 Jul 2017 16:04:34 -0400 Subject: [ITK] =?utf-8?b?zqDOoTogaXRr?= In-Reply-To: References: Message-ID: If your project uses an ITK install tree, then you may need to install ITK after building it. Otherwise, you can point your project to the ITK build tree by setting ITK_DIR in its CMake configuration. HTH, Matt P.S. Please reply-to-all to the messages remain on the mailing list. On Tue, Jul 18, 2017 at 4:00 PM, maria kalla wrote: > I try to change include paths from itk file to another file with my codes. I > change a method that I have work and want to run modified code. > > ???? ??? Outlook ??? Android > > ________________________________ > From: Matt McCormick > Sent: Tuesday, July 18, 2017 10:55:53 PM > To: maria kalla > Cc: community at itk.org > Subject: Re: [ITK] ??: itk > > Hello, > > Welcome to ITK! > > What did not work as expected? > > Matt > > On Tue, Jul 18, 2017 at 10:46 AM, maria kalla > wrote: >> Hello >> >> I would like to ask you something about itk. >> >> I work with this program (itk) and I want to do the following: I have >> modified a method and I want to run it through ITK but I can not do it. I >> changed ITK_DIR_PATH of CMakeCache.txt but it did not work. >> What could I do? >> >> Thank you >> >> >> _______________________________________________ >> Community mailing list >> Community at itk.org >> http://public.kitware.com/mailman/listinfo/community >> From mariageok777 at hotmail.com Tue Jul 18 16:13:53 2017 From: mariageok777 at hotmail.com (maria kalla) Date: Tue, 18 Jul 2017 20:13:53 +0000 Subject: [ITK] =?iso8859-7?b?0NE6IGl0aw==?= In-Reply-To: References: , Message-ID: I try to change itk dir in cmake what I found from your community but it says I can not change it, that I do not have the right to do it ???? ??? Outlook ??? Android ???: Matt McCormick E?????: ?????, 18 ??????? - 23:04 ????: Re: [ITK] ??: itk ????: maria kalla, If your project uses an ITK install tree, then you may need to install ITK after building it. Otherwise, you can point your project to the ITK build tree by setting ITK_DIR in its CMake configuration. HTH, Matt P.S. Please reply-to-all to the messages remain on the mailing list. On Tue, Jul 18, 2017 at 4:00 PM, maria kalla wrote: > I try to change include paths from itk file to another file with my codes. I > change a method that I have work and want to run modified code. > > ???? ??? Outlook ??? Android > > ________________________________ > From: Matt McCormick > Sent: Tuesday, July 18, 2017 10:55:53 PM > To: maria kalla > Cc: community at itk.org > Subject: Re: [ITK] ??: itk > > Hello, > > Welcome to ITK! > > What did not work as expected? > > Matt > > On Tue, Jul 18, 2017 at 10:46 AM, maria kalla > wrote: >> Hello >> >> I would like to ask you something about itk. >> >> I work with this program (itk) and I want to do the following: I have >> modified a method and I want to run it through ITK but I can not do it. I >> changed ITK_DIR_PATH of CMakeCache.txt but it did not work. >> What could I do? >> >> Thank you >> >> >> _______________________________________________ >> Community mailing list >> Community at itk.org >> http://public.kitware.com/mailman/listinfo/community >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt.mccormick at kitware.com Tue Jul 18 16:26:21 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Tue, 18 Jul 2017 16:26:21 -0400 Subject: [ITK] [ITK-dev] Cdash has gone amuck In-Reply-To: <7C804050-C1A4-4756-A0C7-377D32D2046F@gmail.com> References: <7C804050-C1A4-4756-A0C7-377D32D2046F@gmail.com> Message-ID: Hi Bill, What is in the messages? I have not seen any differences in my emails. The dashboard looks relatively green. Thanks, Matt On Fri, Jul 7, 2017 at 5:48 PM, Bill Lorensen wrote: > I'm being bombarded by cdash messages. I have turned off email notifications. > > Bill > > Sent from my iPad > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-developers _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers From matt.mccormick at kitware.com Tue Jul 18 16:32:25 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Tue, 18 Jul 2017 16:32:25 -0400 Subject: [ITK] Writing a 3D image into DICOM series with correct geometry In-Reply-To: References: Message-ID: Hi Fijoy, One of the goals of this project is to improve writing DICOM series: https://github.com/KitwareMedical/ITKDICOM Can we use your dataset for a testing example? Thanks, Matt On Mon, Jul 10, 2017 at 11:54 AM, Fijoy Vadakkumpadan wrote: > Hi Francois, > > Even after explicitly setting the geometry metadata before saving the DICOM > series, the metadata is not loaded back when I read the saved image in ITK. > I believe ITK saves the metadata (I can see it when I load the saved series > in ImageJ), but it's just not loaded back. > > It seems to me that ITK/GDCM saves the DICOM series under Secondary Capture > SOP class by default, and since the geometry metadata are not mandatory for > this class, ITK just doesn't load it back. When I change the SOP class (see > Stackoverflow post below), the geometry metadata are indeed loaded back. > > Do you or anyone else here know if there is another appropriate SOP class > that we can save images coming from non-DICOM sources such that the geometry > metadata are saved & loaded by ITK/GDCM? > > https://stackoverflow.com/questions/40462879/image-position-orientation-not-written-when-saving-itkimage-as-dicom > > Thanks, > --Fijoy > > > On Fri, Jul 7, 2017 at 12:43 PM, Francois Budin > wrote: >> >> Hello Fijoy, >> >> As far as I know this example is the best way to do what you are trying to >> do. ITK does not currently have an easy way to save an itk::Image as a DICOM >> series. >> Thanks, >> >> Francois >> >> On Fri, Jul 7, 2017 at 11:04 AM, Fijoy Vadakkumpadan >> wrote: >>> >>> Hello, >>> >>> What is the best way to write a 3D itk::Image to DICOM series in a way >>> that preserves geometry metadata (slice positions, orientation, and >>> spacing)? >>> >>> The itk::Image I'm referring to is coming from a non-DICOM source. I >>> tried to use itk::ImageSeriesWriter with itk::GDCMImageIO as the IO type to >>> do the above writing. But that does not seem to automatically pick up the >>> metadata from the image object - when I read the written series back (using >>> itk::ImageSeriesReader), only the in-plane spacing is correctly set. After >>> some research, I found this example >>> >>> https://itk.org/Wiki/ITK/Examples/DICOM/ResampleDICOM >>> >>> which explicitly sets the metadata dictionary for each slice before >>> writing. Is this the best way? >>> >>> Thanks, >>> --Fijoy >>> >>> _______________________________________________ >>> Community mailing list >>> Community at itk.org >>> http://public.kitware.com/mailman/listinfo/community >>> >> > > > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > From bill.lorensen at gmail.com Tue Jul 18 16:36:22 2017 From: bill.lorensen at gmail.com (Bill Lorensen) Date: Tue, 18 Jul 2017 16:36:22 -0400 Subject: [ITK] [ITK-dev] Cdash has gone amuck In-Reply-To: References: <7C804050-C1A4-4756-A0C7-377D32D2046F@gmail.com> Message-ID: It's OK now. But I had at least 50 cdash messages the day I reported it. On Jul 18, 2017 4:26 PM, "Matt McCormick" wrote: > Hi Bill, > > What is in the messages? > > I have not seen any differences in my emails. The dashboard looks > relatively green. > > Thanks, > Matt > > On Fri, Jul 7, 2017 at 5:48 PM, Bill Lorensen > wrote: > > I'm being bombarded by cdash messages. I have turned off email > notifications. > > > > Bill > > > > Sent from my iPad > > _______________________________________________ > > Powered by www.kitware.com > > > > Visit other Kitware open-source projects at > > http://www.kitware.com/opensource/opensource.html > > > > Kitware offers ITK Training Courses, for more information visit: > > http://kitware.com/products/protraining.php > > > > Please keep messages on-topic and check the ITK FAQ at: > > http://www.itk.org/Wiki/ITK_FAQ > > > > Follow this link to subscribe/unsubscribe: > > http://public.kitware.com/mailman/listinfo/insight-developers > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers From matt.mccormick at kitware.com Tue Jul 18 18:00:18 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Tue, 18 Jul 2017 18:00:18 -0400 Subject: [ITK] [ITK-dev] Constructive Code Review Message-ID: Here's a great talk on constructive code review from PyCon 2017 by Erik Rose from Mozilla: https://www.youtube.com/watch?v=iNG1a--SIlk It is relevant for anyone who participates in code reviews, i.e. everyone ;-) _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers From pablo.hernandez.cerdan at outlook.com Tue Jul 18 23:06:36 2017 From: pablo.hernandez.cerdan at outlook.com (=?utf-8?B?UGFibG8gSGVybsOhbmRleg==?=) Date: Wed, 19 Jul 2017 03:06:36 +0000 Subject: [ITK] [ITK-dev] Constructive Code Review In-Reply-To: References: Message-ID: It's great indeed, pretty motivating too, thanks for sharing it! Cheers, Pablo On Wed, Jul 19, 2017 at 10:00 AM, matt.mccormick at kitware.com > wrote: Here's a great talk on constructive code review from PyCon 2017 by Erik Rose from Mozilla: https://www.youtube.com/watch?v=iNG1a--SIlk It is relevant for anyone who participates in code reviews, i.e. everyone ;-) _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers From pablo.hernandez.cerdan at outlook.com Tue Jul 18 23:06:38 2017 From: pablo.hernandez.cerdan at outlook.com (=?utf-8?B?UGFibG8gSGVybsOhbmRleg==?=) Date: Wed, 19 Jul 2017 03:06:38 +0000 Subject: [ITK] [ITK-dev] Constructive Code Review In-Reply-To: References: Message-ID: It's great indeed, pretty motivating too, thanks for sharing it! Cheers, Pablo On Wed, Jul 19, 2017 at 10:00 AM, matt.mccormick at kitware.com > wrote: Here's a great talk on constructive code review from PyCon 2017 by Erik Rose from Mozilla: https://www.youtube.com/watch?v=iNG1a--SIlk It is relevant for anyone who participates in code reviews, i.e. everyone ;-) _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers From tapash1991 at gmail.com Thu Jul 20 09:52:03 2017 From: tapash1991 at gmail.com (tapash) Date: Thu, 20 Jul 2017 06:52:03 -0700 (MST) Subject: [ITK] [ITK-users] error in ItkConceptchecking.h Message-ID: <1500558723695-7590051.post@n2.nabble.com> while I trying to build my project. its throwing an error Error 42 error C2440: 'initializing' : cannot convert from 'itk::Concept::Detail::UniqueType_bool' to 'itk::Concept::Detail::UniqueType_bool' plz help me to remove this error -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/error-in-ItkConceptchecking-h-tp7590051.html Sent from the ITK Insight Users mailing list archive at Nabble.com. _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From dzenanz at gmail.com Thu Jul 20 11:06:24 2017 From: dzenanz at gmail.com (=?UTF-8?B?RMW+ZW5hbiBadWtpxIc=?=) Date: Thu, 20 Jul 2017 11:06:24 -0400 Subject: [ITK] [ITK-users] error in ItkConceptchecking.h In-Reply-To: <1500558723695-7590051.post@n2.nabble.com> References: <1500558723695-7590051.post@n2.nabble.com> Message-ID: Hi Tapash, it looks like you are trying to instantiate a template class with a type which that class does not support. If you give us the complete error message (including where it is being originally caused from) we should be able to help you more meaningfully. Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Thu, Jul 20, 2017 at 9:52 AM, tapash wrote: > while I trying to build my project. its throwing an error > > Error 42 error C2440: 'initializing' : cannot convert from > 'itk::Concept::Detail::UniqueType_bool' to > 'itk::Concept::Detail::UniqueType_bool' > plz help me to remove this error > > > > -- > View this message in context: http://itk-insight-users. > 2283740.n2.nabble.com/error-in-ItkConceptchecking-h-tp7590051.html > Sent from the ITK Insight Users mailing list archive at Nabble.com. > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From dzenanz at gmail.com Thu Jul 20 11:32:39 2017 From: dzenanz at gmail.com (=?UTF-8?B?RMW+ZW5hbiBadWtpxIc=?=) Date: Thu, 20 Jul 2017 11:32:39 -0400 Subject: [ITK] [ITK-users] Fwd: error in ItkConceptchecking.h In-Reply-To: References: <1500558723695-7590051.post@n2.nabble.com> Message-ID: ---------- Forwarded message ---------- From: D?enan Zuki? Date: Thu, Jul 20, 2017 at 11:31 AM Subject: Re: [ITK-users] error in ItkConceptchecking.h To: Tapash Barman Hi Tapash, in a working program I have a line like this: typedef itk::MultiplyImageFilter MultiplyType; if I change it into this: typedef itk::MultiplyImageFilter MultiplyType; I get the below, many lines long error message. This is the kind of complete error message I want you to copy-paste, not just the last line of it. If you are using Visual Studio, it is in the build log, not error list. Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) C:\my\program.cxx(117): error C2660: 'itk::BinaryFunctorImageFilter< TInputImage1,TInputImage2,TOutputImage,int>::SetConstant' : function does not take 1 arguments with [ TInputImage1=ImageType , TInputImage2=double , TOutputImage=ImageType ] C:\ITK\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h(34) : see declaration of 'itk::Functor::Mult' C:\ITK\modules\filtering\imagefilterbase\include\ itkBinaryFunctorImageFilter.h(59) : see declaration of 'itk:: BinaryFunctorImageFilter:: ConstPointer' with [ TInputImage1=ImageType , TInputImage2=double , TOutputImage=ImageType ] C:\ITK\modules\filtering\imagefilterbase\include\ itkBinaryFunctorImageFilter.h(111) : see declaration of 'itk:: BinaryFunctorImageFilter:: Input2ImagePixelType' with [ TInputImage1=ImageType , TInputImage2=double , TOutputImage=ImageType ] C:\ITK\modules\core\common\include\itkConceptChecking.h(579) : see declaration of 'D2' C:\ITK\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h(34) : see declaration of 'itk::Functor::Mult' C:\ITK\modules\core\common\include\itkConceptChecking.h(352) : see declaration of 'itk::Concept::MultiplyOperator' C:\ITK\modules\core\common\include\itkConceptChecking.h(352) : see declaration of 'itk::Concept::MultiplyOperator' C:\ITK\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h(34) : see declaration of 'itk::Functor::Mult' C:\ITK\modules\filtering\imagefilterbase\include\ itkBinaryFunctorImageFilter.h(59) : see declaration of 'itk:: BinaryFunctorImageFilter:: ConstPointer' with [ TInputImage1=ImageType , TInputImage2=double , TOutputImage=ImageType ] C:\ITK\modules\filtering\imagefilterbase\include\ itkBinaryFunctorImageFilter.h(111) : see declaration of 'itk:: BinaryFunctorImageFilter:: Input2ImagePixelType' with [ TInputImage1=ImageType , TInputImage2=double , TOutputImage=ImageType ] C:\ITK\modules\core\common\include\itkConceptChecking.h(579) : see declaration of 'D2' C:\ITK\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h(34) : see declaration of 'itk::Functor::Mult' C:\ITK\modules\core\common\include\itkConceptChecking.h(352) : see declaration of 'itk::Concept::MultiplyOperator' C:\ITK\modules\core\common\include\itkConceptChecking.h(352) : see declaration of 'itk::Concept::MultiplyOperator' C:\ITK\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h(34) : see declaration of 'itk::Functor::Mult' C:\ITK\modules\filtering\imagefilterbase\include\ itkBinaryFunctorImageFilter.h(59) : see declaration of 'itk:: BinaryFunctorImageFilter:: ConstPointer' with [ TInputImage1=ImageType , TInputImage2=double , TOutputImage=ImageType ] C:\ITK\modules\filtering\imagefilterbase\include\ itkBinaryFunctorImageFilter.h(111) : see declaration of 'itk:: BinaryFunctorImageFilter:: Input2ImagePixelType' with [ TInputImage1=ImageType , TInputImage2=double , TOutputImage=ImageType ] C:\ITK\modules\core\common\include\itkConceptChecking.h(579) : see declaration of 'D2' C:\ITK\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h(34) : see declaration of 'itk::Functor::Mult' C:\ITK\modules\core\common\include\itkConceptChecking.h(352) : see declaration of 'itk::Concept::MultiplyOperator' C:\ITK\modules\core\common\include\itkConceptChecking.h(352) : see declaration of 'itk::Concept::MultiplyOperator' C:\ITK\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h(34) : see declaration of 'itk::Functor::Mult' C:\ITK\modules\filtering\imagefilterbase\include\ itkBinaryFunctorImageFilter.h(59) : see declaration of 'itk:: BinaryFunctorImageFilter:: ConstPointer' with [ TInputImage1=ImageType , TInputImage2=double , TOutputImage=ImageType ] C:\ITK\modules\filtering\imagefilterbase\include\ itkBinaryFunctorImageFilter.h(111) : see declaration of 'itk:: BinaryFunctorImageFilter:: Input2ImagePixelType' with [ TInputImage1=ImageType , TInputImage2=double , TOutputImage=ImageType ] C:\ITK\modules\core\common\include\itkConceptChecking.h(579) : see declaration of 'D2' C:\ITK\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h(34) : see declaration of 'itk::Functor::Mult' C:\ITK\modules\core\common\include\itkConceptChecking.h(352) : see declaration of 'itk::Concept::MultiplyOperator' C:\ITK\modules\core\common\include\itkConceptChecking.h(352) : see declaration of 'itk::Concept::MultiplyOperator' C:\ITK\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h(34) : see declaration of 'itk::Functor::Mult' C:\ITK\modules\filtering\imagefilterbase\include\ itkBinaryFunctorImageFilter.h(59) : see declaration of 'itk:: BinaryFunctorImageFilter:: ConstPointer' with [ TInputImage1=ImageType , TInputImage2=double , TOutputImage=ImageType ] C:\ITK\modules\filtering\imagefilterbase\include\ itkBinaryFunctorImageFilter.h(111) : see declaration of 'itk:: BinaryFunctorImageFilter:: Input2ImagePixelType' with [ TInputImage1=ImageType , TInputImage2=double , TOutputImage=ImageType ] C:\ITK\modules\core\common\include\itkConceptChecking.h(579) : see declaration of 'D2' C:\ITK\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h(34) : see declaration of 'itk::Functor::Mult' C:\ITK\modules\core\common\include\itkConceptChecking.h(352) : see declaration of 'itk::Concept::MultiplyOperator' C:\ITK\modules\core\common\include\itkConceptChecking.h(352) : see declaration of 'itk::Concept::MultiplyOperator' C:\ITK\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h(34) : see declaration of 'itk::Functor::Mult' C:\ITK\modules\filtering\imagefilterbase\include\ itkBinaryFunctorImageFilter.h(59) : see declaration of 'itk:: BinaryFunctorImageFilter:: ConstPointer' with [ TInputImage1=ImageType , TInputImage2=double , TOutputImage=ImageType ] C:\ITK\modules\filtering\imagefilterbase\include\ itkBinaryFunctorImageFilter.h(111) : see declaration of 'itk:: BinaryFunctorImageFilter:: Input2ImagePixelType' with [ TInputImage1=ImageType , TInputImage2=double , TOutputImage=ImageType ] C:\ITK\modules\core\common\include\itkConceptChecking.h(579) : see declaration of 'D2' C:\ITK\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h(34) : see declaration of 'itk::Functor::Mult' C:\ITK\modules\core\common\include\itkConceptChecking.h(352) : see declaration of 'itk::Concept::MultiplyOperator' C:\ITK\modules\core\common\include\itkConceptChecking.h(352) : see declaration of 'itk::Concept::MultiplyOperator' C:\ITK\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h(34) : see declaration of 'itk::Functor::Mult' C:\ITK\modules\filtering\imagefilterbase\include\ itkBinaryFunctorImageFilter.h(59) : see declaration of 'itk:: BinaryFunctorImageFilter:: ConstPointer' with [ TInputImage1=ImageType , TInputImage2=double , TOutputImage=ImageType ] C:\ITK\modules\filtering\imagefilterbase\include\ itkBinaryFunctorImageFilter.h(111) : see declaration of 'itk:: BinaryFunctorImageFilter:: Input2ImagePixelType' with [ TInputImage1=ImageType , TInputImage2=double , TOutputImage=ImageType ] C:\ITK\modules\core\common\include\itkConceptChecking.h(579) : see declaration of 'D2' C:\ITK\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h(34) : see declaration of 'itk::Functor::Mult' C:\ITK\modules\core\common\include\itkConceptChecking.h(352) : see declaration of 'itk::Concept::MultiplyOperator' C:\ITK\modules\core\common\include\itkConceptChecking.h(352) : see declaration of 'itk::Concept::MultiplyOperator' C:\ITK\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h(34) : see declaration of 'itk::Functor::Mult' C:\ITK\modules\filtering\imagefilterbase\include\ itkBinaryFunctorImageFilter.h(59) : see declaration of 'itk:: BinaryFunctorImageFilter:: ConstPointer' with [ TInputImage1=ImageType , TInputImage2=double , TOutputImage=ImageType ] C:\ITK\modules\filtering\imagefilterbase\include\ itkBinaryFunctorImageFilter.h(111) : see declaration of 'itk:: BinaryFunctorImageFilter:: Input2ImagePixelType' with [ TInputImage1=ImageType , TInputImage2=double , TOutputImage=ImageType ] C:\ITK\modules\core\common\include\itkConceptChecking.h(579) : see declaration of 'D2' C:\ITK\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h(34) : see declaration of 'itk::Functor::Mult' C:\ITK\modules\core\common\include\itkConceptChecking.h(352) : see declaration of 'itk::Concept::MultiplyOperator' C:\ITK\modules\core\common\include\itkConceptChecking.h(352) : see declaration of 'itk::Concept::MultiplyOperator' C:\ITK\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h(34) : see declaration of 'itk::Functor::Mult' C:\ITK\modules\filtering\imagefilterbase\include\ itkBinaryFunctorImageFilter.h(59) : see declaration of 'itk:: BinaryFunctorImageFilter:: ConstPointer' with [ TInputImage1=ImageType , TInputImage2=double , TOutputImage=ImageType ] C:\ITK\modules\filtering\imagefilterbase\include\ itkBinaryFunctorImageFilter.h(111) : see declaration of 'itk:: BinaryFunctorImageFilter:: Input2ImagePixelType' with [ TInputImage1=ImageType , TInputImage2=double , TOutputImage=ImageType ] C:\ITK\modules\core\common\include\itkConceptChecking.h(579) : see declaration of 'D2' C:\ITK\Modules\Filtering\ImageIntensity\include\itkMultiplyImageFilter.h(34) : see declaration of 'itk::Functor::Mult' C:\ITK\modules\core\common\include\itkConceptChecking.h(352) : see declaration of 'itk::Concept::MultiplyOperator' C:\ITK\modules\core\common\include\itkConceptChecking.h(352) : see declaration of 'itk::Concept::MultiplyOperator' On Thu, Jul 20, 2017 at 11:14 AM, Tapash Barman wrote: > Hii..sir the error is in the itkconceptcheckink.h file..if u open this > header file u can see this In integer template > On 20-Jul-2017 8:36 pm, "D?enan Zuki?" wrote: > >> Hi Tapash, >> >> it looks like you are trying to instantiate a template class with a type >> which that class does not support. If you give us the complete error >> message (including where it is being originally caused from) we should be >> able to help you more meaningfully. >> >> Regards, >> D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) >> >> On Thu, Jul 20, 2017 at 9:52 AM, tapash wrote: >> >>> while I trying to build my project. its throwing an error >>> >>> Error 42 error C2440: 'initializing' : cannot convert from >>> 'itk::Concept::Detail::UniqueType_bool' to >>> 'itk::Concept::Detail::UniqueType_bool' >>> plz help me to remove this error >>> >>> >>> >>> -- >>> View this message in context: http://itk-insight-users.22837 >>> 40.n2.nabble.com/error-in-ItkConceptchecking-h-tp7590051.html >>> Sent from the ITK Insight Users mailing list archive at Nabble.com. >>> _____________________________________ >>> Powered by www.kitware.com >>> >>> Visit other Kitware open-source projects at >>> http://www.kitware.com/opensource/opensource.html >>> >>> Kitware offers ITK Training Courses, for more information visit: >>> http://www.kitware.com/products/protraining.php >>> >>> Please keep messages on-topic and check the ITK FAQ at: >>> http://www.itk.org/Wiki/ITK_FAQ >>> >>> Follow this link to subscribe/unsubscribe: >>> http://public.kitware.com/mailman/listinfo/insight-users >>> >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From tapash1991 at gmail.com Fri Jul 21 02:30:18 2017 From: tapash1991 at gmail.com (tapash) Date: Thu, 20 Jul 2017 23:30:18 -0700 (MST) Subject: [ITK] [ITK-users] Fwd: error in ItkConceptchecking.h In-Reply-To: References: <1500558723695-7590051.post@n2.nabble.com> Message-ID: <1500618618887-7590054.post@n2.nabble.com> /** Concept requiring T to be integer. */ template< typename T > struct IsInteger { typedef IsInteger Self; itkStaticConstMacro(Integral, bool, NumericTraits< T >::is_integer); struct Constraints { typedef Detail::UniqueType_bool< true > TrueT; typedef Detail::UniqueType_bool< itkGetStaticConstMacro(Integral) > IntegralT; void constraints() { *IntegralT a = TrueT(); * Detail::IgnoreUnusedVariable(a); } }; itkConceptConstraintsMacro(); }; the line in the bold is throwing this error...... Error 2 error C2440: 'initializing' : cannot convert from 'itk::Concept::Detail::UniqueType_bool' to 'itk::Concept::Detail::UniqueType_bool' c:\insighttoolkit-4.6.0\modules\core\common\include\itkConceptChecking.h 730 -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/error-in-ItkConceptchecking-h-tp7590051p7590054.html Sent from the ITK Insight Users mailing list archive at Nabble.com. _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From tapash1991 at gmail.com Fri Jul 21 09:28:37 2017 From: tapash1991 at gmail.com (tapash) Date: Fri, 21 Jul 2017 06:28:37 -0700 (MST) Subject: [ITK] [ITK-users] Fwd: error in ItkConceptchecking.h In-Reply-To: References: <1500558723695-7590051.post@n2.nabble.com> Message-ID: <1500643717661-7590055.post@n2.nabble.com> BoneSegmentation.cpp 6> Unknown compiler version - please run the configure tests and report the results 6>..\BoneSegmentation.cpp(141): warning C4996: 'mkdir': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _mkdir. See online help for details. 6> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\direct.h(140) : see declaration of 'mkdir' *6>e:\tapash project\insighttoolkit-4.6.0\modules\core\common\include\itkConceptChecking.h(729): error C2440: 'initializing' : cannot convert from 'itk::Concept::Detail::UniqueType_bool' to 'itk::Concept::Detail::UniqueType_bool'* 6> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called 6> e:\tapash project\insighttoolkit-4.6.0\modules\core\common\include\itkConceptChecking.h(728) : while compiling class template member function 'void itk::Concept::IsInteger::Constraints::constraints(void)' 6> e:\tapash project\insighttoolkit-4.6.0\modules\core\common\include\itkConceptChecking.h(735) : see reference to function template instantiation 'void itk::Concept::IsInteger::Constraints::constraints(void)' being compiled 6> e:\tapash project\insighttoolkit-4.6.0\modules\core\common\include\itkConceptChecking.h(735) : see reference to class template instantiation 'itk::Concept::IsInteger::Constraints' being compiled 6> e:\tapash project\insighttoolkit-4.6.0\modules\core\common\include\itkConceptChecking.h(735) : while compiling class template member function 'void itk::Concept::IsInteger::Enforcer(void)' 6> e:\tapash project\insighttoolkit-4.6.0\modules\segmentation\connectedcomponents\include\itkConnectedComponentImageFilter.h(143) : see reference to class template instantiation 'itk::Concept::IsInteger' being compiled 6> E:\tapash project\imagesim\utils\FilterUtils.h(84) : see reference to class template instantiation 'itk::ConnectedComponentImageFilter' being compiled 6> with 6> [ 6> InputImage=ShortImage 6> , OutputImage=FloatImage 6> , TInputImage=ShortImage 6> ] 6> e:\tapash project\imagesim\01-Preprocessing.h(128) : see reference to class template instantiation 'FilterUtils' being compiled 6> BooleanOperationWidget.cpp -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/error-in-ItkConceptchecking-h-tp7590051p7590055.html Sent from the ITK Insight Users mailing list archive at Nabble.com. _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From dzenanz at gmail.com Fri Jul 21 10:46:09 2017 From: dzenanz at gmail.com (=?UTF-8?B?RMW+ZW5hbiBadWtpxIc=?=) Date: Fri, 21 Jul 2017 10:46:09 -0400 Subject: [ITK] [ITK-users] Fwd: error in ItkConceptchecking.h In-Reply-To: <1500643717661-7590055.post@n2.nabble.com> References: <1500558723695-7590051.post@n2.nabble.com> <1500643717661-7590055.post@n2.nabble.com> Message-ID: Hi Tapash, in E:\tapash project\imagesim\utils\FilterUtils.h(84), "Concept requiring T to be integer" means you should instantiate ConnectedComponentImageFilter with OutputImage=ShortImage, *not* OutputImage=FloatImage. If for some reason you want to convert your component indices into floats, you can then apply CastImageFilter to do that. Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Fri, Jul 21, 2017 at 9:28 AM, tapash wrote: > BoneSegmentation.cpp > 6> Unknown compiler version - please run the configure tests and report > the > results > 6>..\BoneSegmentation.cpp(141): warning C4996: 'mkdir': The POSIX name for > this item is deprecated. Instead, use the ISO C++ conformant name: _mkdir. > See online help for details. > 6> C:\Program Files (x86)\Microsoft Visual Studio > 12.0\VC\include\direct.h(140) : see declaration of 'mkdir' > *6>e:\tapash > project\insighttoolkit-4.6.0\modules\core\common\include\ > itkConceptChecking.h(729): > error C2440: 'initializing' : cannot convert from > 'itk::Concept::Detail::UniqueType_bool' to > 'itk::Concept::Detail::UniqueType_bool'* > 6> No user-defined-conversion operator available that can perform > this conversion, or the operator cannot be called > 6> e:\tapash > project\insighttoolkit-4.6.0\modules\core\common\include\ > itkConceptChecking.h(728) > : while compiling class template member function 'void > itk::Concept::IsInteger::Constraints::constraints(void)' > 6> e:\tapash > project\insighttoolkit-4.6.0\modules\core\common\include\ > itkConceptChecking.h(735) > : see reference to function template instantiation 'void > itk::Concept::IsInteger::Constraints::constraints(void)' being > compiled > 6> e:\tapash > project\insighttoolkit-4.6.0\modules\core\common\include\ > itkConceptChecking.h(735) > : see reference to class template instantiation > 'itk::Concept::IsInteger::Constraints' being compiled > 6> e:\tapash > project\insighttoolkit-4.6.0\modules\core\common\include\ > itkConceptChecking.h(735) > : while compiling class template member function 'void > itk::Concept::IsInteger::Enforcer(void)' > 6> e:\tapash > project\insighttoolkit-4.6.0\modules\segmentation\ > connectedcomponents\include\itkConnectedComponentImageFilter.h(143) > : see reference to class template instantiation > 'itk::Concept::IsInteger' being compiled > 6> E:\tapash project\imagesim\utils\FilterUtils.h(84) : see > reference to class template instantiation > 'itk::ConnectedComponentImageFilter' > being compiled > 6> with > 6> [ > 6> InputImage=ShortImage > 6> , OutputImage=FloatImage > 6> , TInputImage=ShortImage > 6> ] > 6> e:\tapash project\imagesim\01-Preprocessing.h(128) : see > reference to class template instantiation > 'FilterUtils' being compiled > 6> BooleanOperationWidget.cpp > > > > -- > View this message in context: http://itk-insight-users. > 2283740.n2.nabble.com/error-in-ItkConceptchecking-h-tp7590051p7590055.html > Sent from the ITK Insight Users mailing list archive at Nabble.com. > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From sean at rogue-research.com Fri Jul 21 12:27:36 2017 From: sean at rogue-research.com (Sean McBride) Date: Fri, 21 Jul 2017 12:27:36 -0400 Subject: [ITK] [ITK-dev] Probelms with recent "Image spacing must be positive" change... In-Reply-To: <20170602201837.1588056977@mail.rogue-research.com> References: <20170530212001.1630717323@mail.rogue-research.com> <20170602201837.1588056977@mail.rogue-research.com> Message-ID: <20170721162736.1894912408@mail.rogue-research.com> On Fri, 2 Jun 2017 16:18:37 -0400, Sean McBride said: >7501479a970694b0dd4a8c4bbf7cbcc033fe059c is the first bad commit >commit 7501479a970694b0dd4a8c4bbf7cbcc033fe059c >Author: Francois Budin >Date: Mon Oct 31 17:04:05 2016 -0400 > > ENH: Image spacing must be positive > > Image spacing must have values greater than 0. Negative > values could create issues with filters that assume that they > are positive. > When an image is loaded, if its spacing is negative, its absolute > value is kept, and the image direction along each axis with a > negative spacing is flipped. > > Change-Id: Id81d61b7fd3f60df2b38e30e540664dba6264996 > >Which is here: > > >Looks like this shipped in 4.11 (we are using 4.10.1). > >Our test case is an Analyze 7.5 file with negative spacing. I'll dig >into it next week... Fran?ois, Matt, So this change is causing us backwards-compatibility problems. What do you think about adding an API so that it can be known if/which axes were flipped? As it is now, the flipping newly performed by ITK cannot be detected. If such a change is acceptable, I can make a patch... (Our app used to warn users that files with negative spacing are problematic, but now we have no means to generate this warning, unless I'm missing something.) Thanks, Sean _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers From blowekamp at mail.nih.gov Fri Jul 21 13:31:53 2017 From: blowekamp at mail.nih.gov (Lowekamp, Bradley (NIH/NLM/LHC) [C]) Date: Fri, 21 Jul 2017 17:31:53 +0000 Subject: [ITK] [ITK-dev] Probelms with recent "Image spacing must be positive" change... In-Reply-To: <20170721162736.1894912408@mail.rogue-research.com> References: <20170530212001.1630717323@mail.rogue-research.com> <20170602201837.1588056977@mail.rogue-research.com> <20170721162736.1894912408@mail.rogue-research.com> Message-ID: <00E5A302-4AB2-4614-BBD6-42704179687E@mail.nih.gov> Sean, The other patch related to this change is the following: https://github.com/InsightSoftwareConsortium/ITK/commit/d447f0452bb5ea92a555e630d05b57da535bd3a9 ENH: Explicitly warn and deprecate negative pixel spacing. The DICOM standard explicitly disallows negative pixel spacing: http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_10.7.html#sect_10.7.1.3 Additionally, it is fundamentally unnatural to have negative space or "size" of an object. The negative is a directional information which should be contained in the direction cosine matrix not the spacing attribute. Change-Id: I1519faee14f48d2eecc08e100562f820eb6aa6ef Are you proposing a flag in the ImageFileReader class? What bout the Series reader? Will it be placed in the MetaData dictionary? > What do you think about adding an API so that it can be known if/which axes were flipped? The wording is going to tricky. Some file formats native coordinates are LPS ( ITK ) while others are RAS, so there may be some ?flipping? already done during reading in ImageIO classes. As the ImageFileReader is doing the conversion and not the ImageIO, would it suffices to just query ImageIO::GetSpacing to see if it?s changed? Brad On 7/21/17, 12:35 PM, "Sean McBride" wrote: On Fri, 2 Jun 2017 16:18:37 -0400, Sean McBride said: >7501479a970694b0dd4a8c4bbf7cbcc033fe059c is the first bad commit >commit 7501479a970694b0dd4a8c4bbf7cbcc033fe059c >Author: Francois Budin >Date: Mon Oct 31 17:04:05 2016 -0400 > > ENH: Image spacing must be positive > > Image spacing must have values greater than 0. Negative > values could create issues with filters that assume that they > are positive. > When an image is loaded, if its spacing is negative, its absolute > value is kept, and the image direction along each axis with a > negative spacing is flipped. > > Change-Id: Id81d61b7fd3f60df2b38e30e540664dba6264996 > >Which is here: > > >Looks like this shipped in 4.11 (we are using 4.10.1). > >Our test case is an Analyze 7.5 file with negative spacing. I'll dig >into it next week... Fran?ois, Matt, So this change is causing us backwards-compatibility problems. What do you think about adding an API so that it can be known if/which axes were flipped? As it is now, the flipping newly performed by ITK cannot be detected. If such a change is acceptable, I can make a patch... (Our app used to warn users that files with negative spacing are problematic, but now we have no means to generate this warning, unless I'm missing something.) Thanks, Sean _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers _______________________________________________ Community mailing list Community at itk.org http://public.kitware.com/mailman/listinfo/community _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers From tofijoy at gmail.com Fri Jul 21 16:24:59 2017 From: tofijoy at gmail.com (Fijoy Vadakkumpadan) Date: Fri, 21 Jul 2017 16:24:59 -0400 Subject: [ITK] Writing 16bit 3D image to a single DICOM file Message-ID: Hello, Does ITK/GDCM support writing a 16bit 3D image to a single DICOM file? When I try to save an 8bit 3D image to a single DICOM file using ITK/GDCM, it succeeds. A suitable SOP class (Multi-frame Grayscale Byte Secondary Capture Image IOD) is assigned to the DICOM image. The same code fails when the image is 16bit, though DICOM standard does seem to have a suitable SOP class (Multi-frame Grayscale Word Secondary Capture Image IOD) for the 16bit image. Thanks, --Fijoy -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt.mccormick at kitware.com Fri Jul 21 16:39:05 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Fri, 21 Jul 2017 16:39:05 -0400 Subject: [ITK] Writing 16bit 3D image to a single DICOM file In-Reply-To: References: Message-ID: Hi Fijoy, I have opened an issue for this here: https://github.com/KitwareMedical/ITKDICOM/issues/8 Thanks, Matt On Fri, Jul 21, 2017 at 4:24 PM, Fijoy Vadakkumpadan wrote: > Hello, > > Does ITK/GDCM support writing a 16bit 3D image to a single DICOM file? > > When I try to save an 8bit 3D image to a single DICOM file using ITK/GDCM, > it succeeds. A suitable SOP class (Multi-frame Grayscale Byte Secondary > Capture Image IOD) is assigned to the DICOM image. The same code fails when > the image is 16bit, though DICOM standard does seem to have a suitable SOP > class (Multi-frame Grayscale Word Secondary Capture Image IOD) for the 16bit > image. > > Thanks, > --Fijoy > > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > From matt.mccormick at kitware.com Fri Jul 21 17:31:12 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Fri, 21 Jul 2017 17:31:12 -0400 Subject: [ITK] [ITK-dev] ITK Performance Discussion Message-ID: Hi Folks, It looks like a good time to discuss ITK performance improvements is at the next ITK Confab on Friday, July 28th, at 11AM Eastern Time. The video conference can be joined with this link: https://meet.google.com/nue-tugx-pxt macOS users may need to use Chromium / Chrome instead of Safari. Or, this teleconference line: Toll-Free #: 1-800-704-9804 International #: 1-404-920-6604 Participant Code: 23395766 This document can be used for notes: https://drive.google.com/drive/u/1/folders/0B986LSX8iqF-X2FaMGJqVjBJRms Thanks, Matt _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers From tofijoy at gmail.com Mon Jul 24 14:03:44 2017 From: tofijoy at gmail.com (Fijoy Vadakkumpadan) Date: Mon, 24 Jul 2017 14:03:44 -0400 Subject: [ITK] ImportImageFilter memory Message-ID: Hello, >From reading the ITK documentation & source code comments, it appears that the itk::ImportImageFilter does not allocate new pixel buffer for the image that it creates. It simply uses the buffer that's passed to it via SetImportPointer(). Is this correct? If yes, is there a flag that I can set for the ImportImageFilter to allocate buffer for the output image? Or, should I use another filter to create a deep-copy of the image that's created by ImportImageFilter, to ensure that the final output image is independent of the buffer passed to the ImportImageFilter? Thanks, --Fijoy -------------- next part -------------- An HTML attachment was scrubbed... URL: From blowekamp at mail.nih.gov Mon Jul 24 14:09:54 2017 From: blowekamp at mail.nih.gov (Lowekamp, Bradley (NIH/NLM/LHC) [C]) Date: Mon, 24 Jul 2017 18:09:54 +0000 Subject: [ITK] ImportImageFilter memory In-Reply-To: References: Message-ID: <69968DA7-5CA0-4D7D-9A91-A59BA7988BE8@mail.nih.gov> Hi Fijoy, You are correct that the ImportImageFilter does not copy the buffer. It does provide options for who owns the memory i.e. who delete the buffer, with the flag LetImageContainerManageMemory. You are use the ImageDuplicator to explicitly copy the image. Here is an example: https://itk.org/ITKExamples/src/Core/Common/DuplicateAnImage/Documentation.html Brad From: Fijoy Vadakkumpadan Date: Monday, July 24, 2017 at 2:04 PM To: "community at itk.org" Subject: [ITK] ImportImageFilter memory Hello, From reading the ITK documentation & source code comments, it appears that the itk::ImportImageFilter does not allocate new pixel buffer for the image that it creates. It simply uses the buffer that's passed to it via SetImportPointer(). Is this correct? If yes, is there a flag that I can set for the ImportImageFilter to allocate buffer for the output image? Or, should I use another filter to create a deep-copy of the image that's created by ImportImageFilter, to ensure that the final output image is independent of the buffer passed to the ImportImageFilter? Thanks, --Fijoy -------------- next part -------------- An HTML attachment was scrubbed... URL: From andx_roo at live.com Tue Jul 25 13:05:08 2017 From: andx_roo at live.com (Andaharoo) Date: Tue, 25 Jul 2017 10:05:08 -0700 (MST) Subject: [ITK] [ITK-users] Problems Using GPU Filters In-Reply-To: References: <1498789176254-7590036.post@n2.nabble.com> Message-ID: <1501002308962-7590057.post@n2.nabble.com> How exactly do I load/setup a GPUImage. There seem to be tons of examples on how to make GPU filters but none on how to use them? Or convert between a regular itk image and a GPUImage. -- View this message in context: http://itk-insight-users.2283740.n2.nabble.com/Problems-Using-GPU-Filters-tp7590036p7590057.html Sent from the ITK Insight Users mailing list archive at Nabble.com. _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From alexander.bruy at gmail.com Wed Jul 26 03:17:05 2017 From: alexander.bruy at gmail.com (Alexander Bruy) Date: Wed, 26 Jul 2017 10:17:05 +0300 Subject: [ITK] Restricting region size in region growing filter Message-ID: Hi, I use ConnectedThresholdImageFilter to perform region growing with seed points and need to be sure that region size does not exceed some value, e.g. 5m or 8m by diameter. In ConnectedThresholdImageFilter docs I can't find any parameters that allows me to limit region size. So I'm wondering if ITK has some tools that can help with this? For example, some filter which can be applied to resulting image or maybe a combination of filters that allow to perform region growing with seed points and limit region size? Thanks. -- Alexander Bruy From blowekamp at mail.nih.gov Wed Jul 26 08:31:04 2017 From: blowekamp at mail.nih.gov (Lowekamp, Bradley (NIH/NLM/LHC) [C]) Date: Wed, 26 Jul 2017 12:31:04 +0000 Subject: [ITK] Restricting region size in region growing filter In-Reply-To: References: Message-ID: Hello, There are many ways to do this operation and the precise definition of size for the application. Here are some brief suggestions: - Combine multiple masks. Such a doing a global threshold, then combining it with a mask which limits the size, then run connected components to choose - Look into the FastMarching methods, perhaps using a speed image of a global threshold - Morphological methods such as reconstruction by dilation, with the seeds as the marker image and the global threshold as the maske image. I hope these suggestions get you started. I would recommend interactively exploring these algorithms with SimpleITK of ITK Python. You can look at these Jupyter notebooks for some ideas: https://github.com/InsightSoftwareConsortium/SimpleITK-Notebooks/tree/master/Python HTH, Brad On 7/26/17, 3:17 AM, "Alexander Bruy" wrote: Hi, I use ConnectedThresholdImageFilter to perform region growing with seed points and need to be sure that region size does not exceed some value, e.g. 5m or 8m by diameter. In ConnectedThresholdImageFilter docs I can't find any parameters that allows me to limit region size. So I'm wondering if ITK has some tools that can help with this? For example, some filter which can be applied to resulting image or maybe a combination of filters that allow to perform region growing with seed points and limit region size? Thanks. -- Alexander Bruy _______________________________________________ Community mailing list Community at itk.org http://public.kitware.com/mailman/listinfo/community From matt.mccormick at kitware.com Wed Jul 26 08:45:10 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Wed, 26 Jul 2017 08:45:10 -0400 Subject: [ITK] Restricting region size in region growing filter In-Reply-To: References: Message-ID: Hi Alexander, One option may use LabelStatisticsKeepNeObjectsImageFilter: https://itk.org/Doxygen/html/classitk_1_1LabelStatisticsKeepNObjectsImageFilter.html HTH, Matt On Wed, Jul 26, 2017 at 3:17 AM, Alexander Bruy wrote: > Hi, > > I use ConnectedThresholdImageFilter to perform region growing with seed points > and need to be sure that region size does not exceed some value, e.g. 5m or 8m > by diameter. > > In ConnectedThresholdImageFilter docs I can't find any parameters that allows me > to limit region size. So I'm wondering if ITK has some tools that can > help with this? > For example, some filter which can be applied to resulting image or maybe > a combination of filters that allow to perform region growing with > seed points and > limit region size? > > Thanks. > -- > Alexander Bruy > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community From swetha.bsharma at gmail.com Thu Jul 27 07:56:30 2017 From: swetha.bsharma at gmail.com (Swetha Sharma) Date: Thu, 27 Jul 2017 17:26:30 +0530 Subject: [ITK] [ITK-users] Read .vtk file and write it as binary stl file Message-ID: Hi, I have .vtk file which i want to read and convert to binary stl file. The documentation has a function WriteBinarySTL (vtkPoints *pts, vtkCellArray *polys, vtkCellArray *strips) . How do I get the information about the vtkpoints and the cellarray? -swetha -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From dzenanz at gmail.com Thu Jul 27 08:04:43 2017 From: dzenanz at gmail.com (=?UTF-8?B?RMW+ZW5hbiBadWtpxIc=?=) Date: Thu, 27 Jul 2017 08:04:43 -0400 Subject: [ITK] [ITK-users] Read .vtk file and write it as binary stl file In-Reply-To: References: Message-ID: Hi Swetha, I think you wanted to send this to vtkusers at vtk.org, not insight-users at itk.org Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Thu, Jul 27, 2017 at 7:56 AM, Swetha Sharma wrote: > Hi, > > I have .vtk file which i want to read and convert to binary stl file. > The documentation has a function > WriteBinarySTL > > (vtkPoints * > pts, vtkCellArray > *polys, vtkC > ellArray *strips) > . How do I get the information about the vtkpoints and the cellarray? > > -swetha > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From thanosxania at gmail.com Thu Jul 27 08:08:37 2017 From: thanosxania at gmail.com (thanos thanos) Date: Thu, 27 Jul 2017 14:08:37 +0200 Subject: [ITK] [ITK-users] Cardiac Deformation using Segmentation and Registration of Ultrasound Images Message-ID: Hello everyone, The past months I have been working on tasks of Segmentation and Registration of 4D ultrasound images so I can eventually do a proper Cardiac Deformation analysis. Unfortunately I am struggling on my own to solve these problems so I still haven't found a proper workflow and this is why I am posting here in case someone has a suggestion or a recommendation. For the acquisition of my data, a pig heart was placed inside a water tank with the 4D transducer on the bottom of the tank (the apex of the heart was about 5 cm from the transducer) and with around 50 volumes per second I obtained images of 120x90x80, that after masking I ended up with volumes of 75x70x52 (x,y,z). So far, I use Curvature Anisotropic Diffusion using the ITK libraries in order to perform an automatic segmentation using Active Contours (with Matlab). I filtered my data, mostly to assist my 2D segmentation algorithm, which I perform slice by slice on the z axis. I obtain a 3D model using the isosurfaces. Then I tried both the Demons registration and the Bsplines registration on the 3D volumes. I tried both on the original (unsegmented) data and two segmented volumes, but I can not say that I am quite satisfied with any of the results. So my questions are the following : 1) Is it necessary to perform segmentation before the registration since my heart is placed in a water tank, so there are no other organs around? 2) Should the registration be done on the filtered or the unfiltered data? 3) I am not satisfied at all with my segmentation algorithm since active contours are quite sensitive to noise and because of the nature of the data I have to use different parameters for every 4-5 slices. Therefore I was thinking to perform an almost manual segmentation on one volume and then use registration for the segmentation of the rest (if that is necessary). So I am now studying and trying to say if something like that is possible (and especially on ITK). If someone knows something about it, I would be happy to hear. 4) What would be a proper number of grid points for my 75x70x52 images, when using the B-Splines registration? I am sorry for the long post but I have been struggling for too long with this problem and I would really appreciate any kind of help. Best regards, Thanos -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From alexander.bruy at gmail.com Thu Jul 27 08:11:00 2017 From: alexander.bruy at gmail.com (Alexander Bruy) Date: Thu, 27 Jul 2017 15:11:00 +0300 Subject: [ITK] Restricting region size in region growing filter In-Reply-To: References: Message-ID: Hi Brad, thanks for your suggestions, I'm new to ITK and they are very useful for me 2017-07-26 15:31 GMT+03:00 Lowekamp, Bradley (NIH/NLM/LHC) [C] : > - Combine multiple masks. Such a doing a global threshold, then combining it with a mask which limits the size, then run connected components to choose May I ask you to give a bit more detailed explanations about this approach? Maybe you can point me on some existing code which adopts similar approach with multiple masks? Am I right that with this approach I will need my input image (single- or multiband) and also it is necessary to create additional mask image with some buffer regions around seed points. Then I will need to combine input image and mask into single image, set lower and upper thresholds for each band and run connected components filter? Thanks -- Alexander Bruy From manuel.grizonnet at cnes.fr Thu Jul 27 08:52:41 2017 From: manuel.grizonnet at cnes.fr (Manuel Grizonnet) Date: Thu, 27 Jul 2017 14:52:41 +0200 Subject: [ITK] [ITK-dev] Probelms with recent "Image spacing must be positive" change... In-Reply-To: <00E5A302-4AB2-4614-BBD6-42704179687E@mail.nih.gov> References: <20170530212001.1630717323@mail.rogue-research.com> <20170602201837.1588056977@mail.rogue-research.com> <20170721162736.1894912408@mail.rogue-research.com> <00E5A302-4AB2-4614-BBD6-42704179687E@mail.nih.gov> Message-ID: <9a9581ea-aa89-9fb0-5073-d54ec1876513@cnes.fr> Hi all, I'm part of the remote sensing library orfeo toolbox team which used (a lot) ITK internally. Following this discussion, I would like to add that in case of OTB, the strict sign checking of image spacing will have probably major impact for us as we're used to deal with images with negative spacing. An example of remote sensing images with negative spacing is the well known Geotiff format (TIFF file with embedded georeferencing information). You can find in the geotiff specification [1]: /"simple reversals of orientation between raster and model space (e.g. horizontal or vertical flips) may be indicated by reversal of sign in the corresponding component of the ModelPixelScaleTag. GeoTIFF compliant readers must honor this sign-reversal convention."/ So we do have to handle images with negative spacing in OTB... We also understand the point in ITK as we've also already faced issue with filters that assume positive spacing. See for instance this issue and discussion with Matt on JIRA: https://issues.itk.org/jira/browse/ITK-3314 I don't have yet a clear idea on how to handle this properly but wanted to join the discussion. I've added otb-dev mailing list developer to the discussion as there are probably other otb developers interested by the discussion. Regards, Manuel [1] http://geotiff.maptools.org/spec/geotiff2.6.html Le 21/07/2017 ? 19:31, Lowekamp, Bradley (NIH/NLM/LHC) [C] a ?crit : > Sean, > > The other patch related to this change is the following: > > https://github.com/InsightSoftwareConsortium/ITK/commit/d447f0452bb5ea92a555e630d05b57da535bd3a9 > ENH: Explicitly warn and deprecate negative pixel spacing. > The DICOM standard explicitly disallows negative pixel spacing: > http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_10.7.html#sect_10.7.1.3 > > Additionally, it is fundamentally unnatural to have negative space or > "size" of an object. The negative is a directional information which > should be contained in the direction cosine matrix not the spacing > attribute. > > Change-Id: I1519faee14f48d2eecc08e100562f820eb6aa6ef > > Are you proposing a flag in the ImageFileReader class? What bout the Series reader? Will it be placed in the MetaData dictionary? > >> What do you think about adding an API so that it can be known if/which axes were flipped? > The wording is going to tricky. Some file formats native coordinates are LPS ( ITK ) while others are RAS, so there may be some ?flipping? already done during reading in ImageIO classes. > > As the ImageFileReader is doing the conversion and not the ImageIO, would it suffices to just query ImageIO::GetSpacing to see if it?s changed? > > Brad > > On 7/21/17, 12:35 PM, "Sean McBride" wrote: > > On Fri, 2 Jun 2017 16:18:37 -0400, Sean McBride said: > > >7501479a970694b0dd4a8c4bbf7cbcc033fe059c is the first bad commit > >commit 7501479a970694b0dd4a8c4bbf7cbcc033fe059c > >Author: Francois Budin > >Date: Mon Oct 31 17:04:05 2016 -0400 > > > > ENH: Image spacing must be positive > > > > Image spacing must have values greater than 0. Negative > > values could create issues with filters that assume that they > > are positive. > > When an image is loaded, if its spacing is negative, its absolute > > value is kept, and the image direction along each axis with a > > negative spacing is flipped. > > > > Change-Id: Id81d61b7fd3f60df2b38e30e540664dba6264996 > > > >Which is here: > > > > > >Looks like this shipped in 4.11 (we are using 4.10.1). > > > >Our test case is an Analyze 7.5 file with negative spacing. I'll dig > >into it next week... > > Fran?ois, Matt, > > So this change is causing us backwards-compatibility problems. > > What do you think about adding an API so that it can be known if/which axes were flipped? As it is now, the flipping newly performed by ITK cannot be detected. If such a change is acceptable, I can make a patch... > > (Our app used to warn users that files with negative spacing are problematic, but now we have no means to generate this warning, unless I'm missing something.) > > Thanks, > > Sean > > > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-developers > _______________________________________________ > Community mailing list > Community at itk.org > http://public.kitware.com/mailman/listinfo/community > > > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-developers -- Manuel GRIZONNET -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers From blowekamp at mail.nih.gov Thu Jul 27 09:18:56 2017 From: blowekamp at mail.nih.gov (Lowekamp, Bradley (NIH/NLM/LHC) [C]) Date: Thu, 27 Jul 2017 13:18:56 +0000 Subject: [ITK] [ITK-dev] Probelms with recent "Image spacing must be positive" change... In-Reply-To: <9a9581ea-aa89-9fb0-5073-d54ec1876513@cnes.fr> References: <20170530212001.1630717323@mail.rogue-research.com> <20170602201837.1588056977@mail.rogue-research.com> <20170721162736.1894912408@mail.rogue-research.com> <00E5A302-4AB2-4614-BBD6-42704179687E@mail.nih.gov> <9a9581ea-aa89-9fb0-5073-d54ec1876513@cnes.fr> Message-ID: <7A48A94E-8705-45F7-9461-2B89D169BE10@mail.nih.gov> Hello Manuel, Thank you for sharing your use case! With the recent change to the ImageFileReader below when an ImageIO reports negative space, it is applied to the Direction cosine matrix so that the physical location of the pixel remains the same. I believe reading and processing images in ITK should work properly for your applications after the negative spacing is applied to the Direction cosine matrix. However, logic may need to be added to writing images with file formats that don?t support the direction cosine matrix but do support negative spacing. Have you encountered any specific problems with these changes? Thanks, Brad From: Manuel Grizonnet Date: Thursday, July 27, 2017 at 9:03 AM To: "insight-developers at itk.org" Cc: "otb-developers at googlegroups.com" Subject: Re: [ITK-dev] [ITK] Probelms with recent "Image spacing must be positive" change... Hi all, I'm part of the remote sensing library orfeo toolbox team which used (a lot) ITK internally. Following this discussion, I would like to add that in case of OTB, the strict sign checking of image spacing will have probably major impact for us as we're used to deal with images with negative spacing. An example of remote sensing images with negative spacing is the well known Geotiff format (TIFF file with embedded georeferencing information). You can find in the geotiff specification [1]: "simple reversals of orientation between raster and model space (e.g. horizontal or vertical flips) may be indicated by reversal of sign in the corresponding component of the ModelPixelScaleTag. GeoTIFF compliant readers must honor this sign-reversal convention." So we do have to handle images with negative spacing in OTB... We also understand the point in ITK as we've also already faced issue with filters that assume positive spacing. See for instance this issue and discussion with Matt on JIRA: https://issues.itk.org/jira/browse/ITK-3314 I don't have yet a clear idea on how to handle this properly but wanted to join the discussion. I've added otb-dev mailing list developer to the discussion as there are probably other otb developers interested by the discussion. Regards, Manuel [1] http://geotiff.maptools.org/spec/geotiff2.6.html Le 21/07/2017 ? 19:31, Lowekamp, Bradley (NIH/NLM/LHC) [C] a ?crit : Sean, The other patch related to this change is the following: https://github.com/InsightSoftwareConsortium/ITK/commit/d447f0452bb5ea92a555e630d05b57da535bd3a9 ENH: Explicitly warn and deprecate negative pixel spacing. The DICOM standard explicitly disallows negative pixel spacing: http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_10.7.html#sect_10.7.1.3 Additionally, it is fundamentally unnatural to have negative space or "size" of an object. The negative is a directional information which should be contained in the direction cosine matrix not the spacing attribute. Change-Id: I1519faee14f48d2eecc08e100562f820eb6aa6ef Are you proposing a flag in the ImageFileReader class? What bout the Series reader? Will it be placed in the MetaData dictionary? What do you think about adding an API so that it can be known if/which axes were flipped? The wording is going to tricky. Some file formats native coordinates are LPS ( ITK ) while others are RAS, so there may be some ?flipping? already done during reading in ImageIO classes. As the ImageFileReader is doing the conversion and not the ImageIO, would it suffices to just query ImageIO::GetSpacing to see if it?s changed? Brad On 7/21/17, 12:35 PM, "Sean McBride" wrote: On Fri, 2 Jun 2017 16:18:37 -0400, Sean McBride said: >7501479a970694b0dd4a8c4bbf7cbcc033fe059c is the first bad commit >commit 7501479a970694b0dd4a8c4bbf7cbcc033fe059c >Author: Francois Budin >Date: Mon Oct 31 17:04:05 2016 -0400 > > ENH: Image spacing must be positive > > Image spacing must have values greater than 0. Negative > values could create issues with filters that assume that they > are positive. > When an image is loaded, if its spacing is negative, its absolute > value is kept, and the image direction along each axis with a > negative spacing is flipped. > > Change-Id: Id81d61b7fd3f60df2b38e30e540664dba6264996 > >Which is here: > > >Looks like this shipped in 4.11 (we are using 4.10.1). > >Our test case is an Analyze 7.5 file with negative spacing. I'll dig >into it next week... Fran?ois, Matt, So this change is causing us backwards-compatibility problems. What do you think about adding an API so that it can be known if/which axes were flipped? As it is now, the flipping newly performed by ITK cannot be detected. If such a change is acceptable, I can make a patch... (Our app used to warn users that files with negative spacing are problematic, but now we have no means to generate this warning, unless I'm missing something.) Thanks, Sean _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers _______________________________________________ Community mailing list Community at itk.org http://public.kitware.com/mailman/listinfo/community _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers -- Manuel GRIZONNET -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers From dzenanz at gmail.com Thu Jul 27 10:22:00 2017 From: dzenanz at gmail.com (=?UTF-8?B?RMW+ZW5hbiBadWtpxIc=?=) Date: Thu, 27 Jul 2017 10:22:00 -0400 Subject: [ITK] [ITK-users] Cardiac Deformation using Segmentation and Registration of Ultrasound Images In-Reply-To: References: Message-ID: Hi Thanos, segmentation is not a trivial task, and usually requires a lot of user intervention/interaction to achieve a satisfactory result. Completely segmenting one case, and then registering other cases to the segmented one and transferring labels is called atlas segmentation. To figure out proper registration parameters, you could play with BRAINSFit module of 3D Slicer (docs ), which is built on top of ITK and provides a nice user interface with significant number of options to tweak. For B-Splines, common number of grid points are up to maybe 13x13x13. Since you have a high frame rate, you would probably benefit from initializing registration of time point n+1 by resulting transform from time point n. Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Thu, Jul 27, 2017 at 8:08 AM, thanos thanos wrote: > Hello everyone, > > The past months I have been working on tasks of Segmentation and > Registration of 4D ultrasound images so I can eventually do a proper > Cardiac Deformation analysis. Unfortunately I am struggling on my own to > solve these problems so I still haven't found a proper workflow and this is > why I am posting here in case someone has a suggestion or a recommendation. > > For the acquisition of my data, a pig heart was placed inside a water tank > with the 4D transducer on the bottom of the tank (the apex of the heart was > about 5 cm from the transducer) and with around 50 volumes per second I > obtained images of 120x90x80, that after masking I ended up with volumes of > 75x70x52 (x,y,z). > > So far, I use Curvature Anisotropic Diffusion using the ITK libraries in > order to perform an automatic segmentation using Active Contours (with > Matlab). I filtered my data, mostly to assist my 2D segmentation algorithm, > which I perform slice by slice on the z axis. I obtain a 3D model using the > isosurfaces. > > Then I tried both the Demons registration and the Bsplines registration on > the 3D volumes. I tried both on the original (unsegmented) data and two > segmented volumes, but I can not say that I am quite satisfied with any of > the results. > > So my questions are the following : > 1) Is it necessary to perform segmentation before the registration since > my heart is placed in a water tank, so there are no other organs around? > 2) Should the registration be done on the filtered or the unfiltered data? > 3) I am not satisfied at all with my segmentation algorithm since active > contours are quite sensitive to noise and because of the nature of the data > I have to use different parameters for every 4-5 slices. Therefore I was > thinking to perform an almost manual segmentation on one volume and then > use registration for the segmentation of the rest (if that is necessary). > So I am now studying and trying to say if something like that is possible > (and especially on ITK). If someone knows something about it, I would be > happy to hear. > 4) What would be a proper number of grid points for my 75x70x52 images, > when using the B-Splines registration? > > I am sorry for the long post but I have been struggling for too long with > this problem and I would really appreciate any kind of help. > > Best regards, > Thanos > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From lasso at queensu.ca Thu Jul 27 10:34:55 2017 From: lasso at queensu.ca (Andras Lasso) Date: Thu, 27 Jul 2017 14:34:55 +0000 Subject: [ITK] [ITK-users] Cardiac Deformation using Segmentation and Registration of Ultrasound Images In-Reply-To: References: Message-ID: You may also give elastix registration toolbox a try (http://elastix.isi.uu.nl/). It is based on ITK but it adds a number of registration classes. My experience is that with BRAINS you often need to tune parameters to get meaningful results, while elastix gives great results with default settings for all kinds of input data. Elastix is available in 3D Slicer, too (by installing SlicerElastix extension). Andras From: Community [mailto:community-bounces at itk.org] On Behalf Of D?enan Zukic Sent: Thursday, July 27, 2017 10:22 AM To: thanos thanos Cc: Insight-users Subject: Re: [ITK] [ITK-users] Cardiac Deformation using Segmentation and Registration of Ultrasound Images Hi Thanos, segmentation is not a trivial task, and usually requires a lot of user intervention/interaction to achieve a satisfactory result. Completely segmenting one case, and then registering other cases to the segmented one and transferring labels is called atlas segmentation. To figure out proper registration parameters, you could play with BRAINSFit module of 3D Slicer (docs), which is built on top of ITK and provides a nice user interface with significant number of options to tweak. For B-Splines, common number of grid points are up to maybe 13x13x13. Since you have a high frame rate, you would probably benefit from initializing registration of time point n+1 by resulting transform from time point n. Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Thu, Jul 27, 2017 at 8:08 AM, thanos thanos > wrote: Hello everyone, The past months I have been working on tasks of Segmentation and Registration of 4D ultrasound images so I can eventually do a proper Cardiac Deformation analysis. Unfortunately I am struggling on my own to solve these problems so I still haven't found a proper workflow and this is why I am posting here in case someone has a suggestion or a recommendation. For the acquisition of my data, a pig heart was placed inside a water tank with the 4D transducer on the bottom of the tank (the apex of the heart was about 5 cm from the transducer) and with around 50 volumes per second I obtained images of 120x90x80, that after masking I ended up with volumes of 75x70x52 (x,y,z). So far, I use Curvature Anisotropic Diffusion using the ITK libraries in order to perform an automatic segmentation using Active Contours (with Matlab). I filtered my data, mostly to assist my 2D segmentation algorithm, which I perform slice by slice on the z axis. I obtain a 3D model using the isosurfaces. Then I tried both the Demons registration and the Bsplines registration on the 3D volumes. I tried both on the original (unsegmented) data and two segmented volumes, but I can not say that I am quite satisfied with any of the results. So my questions are the following : 1) Is it necessary to perform segmentation before the registration since my heart is placed in a water tank, so there are no other organs around? 2) Should the registration be done on the filtered or the unfiltered data? 3) I am not satisfied at all with my segmentation algorithm since active contours are quite sensitive to noise and because of the nature of the data I have to use different parameters for every 4-5 slices. Therefore I was thinking to perform an almost manual segmentation on one volume and then use registration for the segmentation of the rest (if that is necessary). So I am now studying and trying to say if something like that is possible (and especially on ITK). If someone knows something about it, I would be happy to hear. 4) What would be a proper number of grid points for my 75x70x52 images, when using the B-Splines registration? I am sorry for the long post but I have been struggling for too long with this problem and I would really appreciate any kind of help. Best regards, Thanos _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From matt.mccormick at kitware.com Thu Jul 27 15:21:47 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Thu, 27 Jul 2017 15:21:47 -0400 Subject: [ITK] [ITK-users] error wrapping itkDummy filter from example In-Reply-To: <753349640.772218.1501182490191@mail.yahoo.com> References: <753349640.772218.1501182490191.ref@mail.yahoo.com> <753349640.772218.1501182490191@mail.yahoo.com> Message-ID: Hi Nick, That page is currently outdated -- please find a detailed, updated, clean guide to the wrapping in the ITK Software Guide: https://itk.org/ITKSoftwareGuide/html/Book1/ITKSoftwareGuide-Book1ch9.html#x48-1530009.5 The best way to get started is to begin with the ITKModuleTemplate: https://github.com/InsightSoftwareConsortium/ITKModuleTemplate Hope this helps, Matt On Thu, Jul 27, 2017 at 3:08 PM, Nick Cullen via Insight-users < insight-users at itk.org> wrote: > Trying to wrap the filter for python as in the given example from ITK/Release > 4/Wrapping/BuildProcess - KitwarePublic > > > ITK/Release 4/Wrapping/BuildProcess - KitwarePublic > > > > But I get an error: > CMake Error at CMakeLists.txt:9 (WRAP_LIBRARY): > Unknown CMake command "WRAP_LIBRARY". > > Anyone know why this might be? > > Thanks! > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From blowekamp at mail.nih.gov Thu Jul 27 15:43:35 2017 From: blowekamp at mail.nih.gov (Lowekamp, Bradley (NIH/NLM/LHC) [C]) Date: Thu, 27 Jul 2017 19:43:35 +0000 Subject: [ITK] Restricting region size in region growing filter In-Reply-To: References: Message-ID: You may find some useful SimpleITK examples here: http://insightsoftwareconsortium.github.io/SimpleITK-Notebooks/Python_html/300_Segmentation_Overview.html or other related notebooks. To combine multiple masks into their intersection, if they are 0s and 1s, you can simply multiply them together. Brad On 7/27/17, 8:11 AM, "Alexander Bruy" wrote: Hi Brad, thanks for your suggestions, I'm new to ITK and they are very useful for me 2017-07-26 15:31 GMT+03:00 Lowekamp, Bradley (NIH/NLM/LHC) [C] : > - Combine multiple masks. Such a doing a global threshold, then combining it with a mask which limits the size, then run connected components to choose May I ask you to give a bit more detailed explanations about this approach? Maybe you can point me on some existing code which adopts similar approach with multiple masks? Am I right that with this approach I will need my input image (single- or multiband) and also it is necessary to create additional mask image with some buffer regions around seed points. Then I will need to combine input image and mask into single image, set lower and upper thresholds for each band and run connected components filter? Thanks -- Alexander Bruy From matt.mccormick at kitware.com Fri Jul 28 11:03:39 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Fri, 28 Jul 2017 11:03:39 -0400 Subject: [ITK] [ITK-dev] ITK Performance Discussion In-Reply-To: References: Message-ID: https://docs.google.com/document/d/1pPXBO0JyBGDORRlOBdqJLBx34SwWj7Dp-iaJwRHMBF4/edit On Fri, Jul 21, 2017 at 5:31 PM, Matt McCormick wrote: > Hi Folks, > > It looks like a good time to discuss ITK performance improvements is > at the next ITK Confab on Friday, July 28th, at 11AM Eastern Time. The > video conference can be joined with this link: > > https://meet.google.com/nue-tugx-pxt > > macOS users may need to use Chromium / Chrome instead of Safari. > > > Or, this teleconference line: > > Toll-Free #: 1-800-704-9804 > International #: 1-404-920-6604 > Participant Code: 23395766 > > This document can be used for notes: > > https://drive.google.com/drive/u/1/folders/0B986LSX8iqF-X2FaMGJqVjBJRms > > > Thanks, > Matt _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers From Anchit.Dhar at mathworks.com Fri Jul 28 13:58:42 2017 From: Anchit.Dhar at mathworks.com (Anchit Dhar) Date: Fri, 28 Jul 2017 17:58:42 +0000 Subject: [ITK] [ITK-users] 3-D support for BinaryPruningImageFilter Message-ID: <484A4E48-73AF-4624-A9F1-09266DDA5911@mathworks.com> Hello, I have written a module to prune branches of a 3-D Skeleton using ITK?s BinaryPruningImageFilter. The filter is returning unexpected pruned results for a 3-D skeleton input. The doxygen page for the filter states that ? ?The algorithm is the N-dimensional version of that given for two dimensions in: Rafael C. Gonzales and Richard E. Woods. Digital Image Processing. Addison Wesley, 491-494, (1993).? But, from the source code of BinaryPruningImageFilter it appears that pruning is being performed considering 2-D neighbors only and hence does not support 3-D. Can someone please confirm this? Thanks. -Anchit -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From sonia.pozzi89 at gmail.com Fri Jul 28 18:26:43 2017 From: sonia.pozzi89 at gmail.com (Sonia Pozzi) Date: Sat, 29 Jul 2017 00:26:43 +0200 Subject: [ITK] [ITK-users] Siemens 4d data Message-ID: <98DF486D-EEE7-4F2C-9128-D7CE75F13D3A@gmail.com> Hello, I have a set of Siemens series. In each series there is the same slice for different times. I would like to be able to reconstruct in itk each single volume (a complete volume for every time step). It is a couple of week that I?m trying how to do that? I understood that I should use some tag, but I?m not sure about which and my code is not working. Could you be so kind to give me a suggestion here? My regards, Sonia _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From jonasteuwen at gmail.com Sat Jul 29 12:01:34 2017 From: jonasteuwen at gmail.com (Jonas Teuwen) Date: Sat, 29 Jul 2017 18:01:34 +0200 Subject: [ITK] [ITK-users] Which iterator to use for spherical or cylindrical neighborhood Message-ID: Hi all, I have point annotations in images which can be a little bit 'off center', a solution would be to find the maximum in a spherical or cylindrical region. For instance, if I have annotation, (a,b, c) I would want (x - a)^2 + (y - b)^2 <= some radius and |z - c| < height or (x - a)^2 + (y - b)^2 + (z - c)^2 <= some radius. I know I can use MinimumMaximumFilter for this, but how do I find this in the requested neighborhood? Best, Jonas Teuwen -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From ljzijp at gmail.com Sat Jul 29 13:38:01 2017 From: ljzijp at gmail.com (Lambert Zijp) Date: Sat, 29 Jul 2017 19:38:01 +0200 Subject: [ITK] [ITK-users] Siemens 4d data In-Reply-To: <98DF486D-EEE7-4F2C-9128-D7CE75F13D3A@gmail.com> References: <98DF486D-EEE7-4F2C-9128-D7CE75F13D3A@gmail.com> Message-ID: Hi Sonia, Apparently SeriesInstanceUID does not help; sounds familiar. Maybe FrameNumber, SeriesNumber or AcquisitionNumber? If not, sorting slices on slice coordinate and AcquisitionTime could be done as a last resort. If you post two slices with the same coordinate but belonging to different volumes, I will take look at it. Greetings, Lambert On Sat, Jul 29, 2017 at 12:26 AM, Sonia Pozzi wrote: > Hello, > > I have a set of Siemens series. In each series there is the same slice for > different times. > I would like to be able to reconstruct in itk each single volume (a > complete volume for every time step). > It is a couple of week that I?m trying how to do that? > I understood that I should use some tag, but I?m not sure about which and > my code is not working. > > Could you be so kind to give me a suggestion here? > > My regards, > > Sonia > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From lasso at queensu.ca Sat Jul 29 14:58:52 2017 From: lasso at queensu.ca (Andras Lasso) Date: Sat, 29 Jul 2017 18:58:52 +0000 Subject: [ITK] [ITK-users] Siemens 4d data In-Reply-To: References: <98DF486D-EEE7-4F2C-9128-D7CE75F13D3A@gmail.com> Message-ID: Finding out what DICOM fields to use for grouping frames is a complex topic. There is no universally accepted standard, the field(s) to use depend on scanner manufacturer, imaging modality, and imaging protocol. You can have a look at the 4D image importer logic in 3D Slicer (what DICOM fields are considered, what heuristics are used for automatically detecting special cases, etc): https://github.com/fedorov/MultiVolumeImporter/blob/master/MultiVolumeImporterPlugin.py You may also consider using 3D Slicer for loading DICOM data and saving as a 4D nrrd file that you can then easily load into ITK. If you have any questions related to this then post it on https://discourse.slicer.org. Andras From: Community [mailto:community-bounces at itk.org] On Behalf Of Lambert Zijp Sent: Saturday, July 29, 2017 1:38 PM To: Sonia Pozzi Cc: Insight-users Subject: Re: [ITK] [ITK-users] Siemens 4d data Hi Sonia, Apparently SeriesInstanceUID does not help; sounds familiar. Maybe FrameNumber, SeriesNumber or AcquisitionNumber? If not, sorting slices on slice coordinate and AcquisitionTime could be done as a last resort. If you post two slices with the same coordinate but belonging to different volumes, I will take look at it. Greetings, Lambert On Sat, Jul 29, 2017 at 12:26 AM, Sonia Pozzi > wrote: Hello, I have a set of Siemens series. In each series there is the same slice for different times. I would like to be able to reconstruct in itk each single volume (a complete volume for every time step). It is a couple of week that I?m trying how to do that? I understood that I should use some tag, but I?m not sure about which and my code is not working. Could you be so kind to give me a suggestion here? My regards, Sonia _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From pablo.hernandez.cerdan at outlook.com Sun Jul 30 06:58:39 2017 From: pablo.hernandez.cerdan at outlook.com (=?utf-8?B?UGFibG8gSGVybsOhbmRleg==?=) Date: Sun, 30 Jul 2017 10:58:39 +0000 Subject: [ITK] [ITK-users] Recommended approach for cross-platform deploying ITK+Vtk+Qt5 Message-ID: Hi, I wonder what is the recommended approach for deploying a cross-platform application involving ITK+Vtk+Qt nowadays with all the available tools: docker containers, travis-ci, appveyor, circle-ci etc. Is it still recommended to create a SuperBuild with all your dependencies as ExternalProjects in CMake? How do you reduce the time it takes to build? The build time for all my dependencies (Vtk (with qt5), ITK, boost) plus my small app is surpassing the 60min limit in both, AppVeyor and Travis-CI. To alleviate this, do you use docker?. My main concern is Windows, I have seen that @thewtex and @jcfr have a repo with closs-platform buildings ( https://github.com/dockcross/dockcross ), there is a Windows64 there with Mingw that might help. I have no idea if I can generate windows binaries from AppVeyor using docker, or instead, I generate them using that docker image with Wine+MinGw in Travis-CI. Instead of CPack from CMake I have been thinking to use windowsqtdeploy, linuxqtdeploy from Qt... I have been looking to Slicer source code to see how they are doing it, and it seems super structured, but not 100% sure how they generate their nightly packages ( I guess it involves these docker images: https://github.com/thewtex/SlicerDocker, but also in Windows?) Maybe this is the not best forum to ask, but if you have any recommendations for deploying a small GUI app based on ITK, I will be extremely grateful to hear them. Thanks! Cheers, Pablo -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From lasso at queensu.ca Sun Jul 30 08:02:14 2017 From: lasso at queensu.ca (Andras Lasso) Date: Sun, 30 Jul 2017 12:02:14 +0000 Subject: [ITK] [ITK-users] Recommended approach for cross-platform deploying ITK+Vtk+Qt5 In-Reply-To: References: Message-ID: Currently, Slicer does not use AppVeyor for continuous integration on Windows. Also, the full test suite of Slicer takes several hours to run, so CircleCI only checks for build errors. Andras From: Pablo Hern?ndez Sent: Sunday, July 30, 2017 6:58 To: Insight-users Subject: [ITK] [ITK-users] Recommended approach for cross-platform deploying ITK+Vtk+Qt5 Hi, I wonder what is the recommended approach for deploying a cross-platform application involving ITK+Vtk+Qt nowadays with all the available tools: docker containers, travis-ci, appveyor, circle-ci etc. Is it still recommended to create a SuperBuild with all your dependencies as ExternalProjects in CMake? How do you reduce the time it takes to build? The build time for all my dependencies (Vtk (with qt5), ITK, boost) plus my small app is surpassing the 60min limit in both, AppVeyor and Travis-CI. To alleviate this, do you use docker?. My main concern is Windows, I have seen that @thewtex and @jcfr have a repo with closs-platform buildings ( https://github.com/dockcross/dockcross ), there is a Windows64 there with Mingw that might help. I have no idea if I can generate windows binaries from AppVeyor using docker, or instead, I generate them using that docker image with Wine+MinGw in Travis-CI. Instead of CPack from CMake I have been thinking to use windowsqtdeploy, linuxqtdeploy from Qt... I have been looking to Slicer source code to see how they are doing it, and it seems super structured, but not 100% sure how they generate their nightly packages ( I guess it involves these docker images: https://github.com/thewtex/SlicerDocker, but also in Windows?) Maybe this is the not best forum to ask, but if you have any recommendations for deploying a small GUI app based on ITK, I will be extremely grateful to hear them. Thanks! Cheers, Pablo -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From sonia.pozzi89 at gmail.com Sun Jul 30 13:09:56 2017 From: sonia.pozzi89 at gmail.com (Sonia Pozzi) Date: Sun, 30 Jul 2017 19:09:56 +0200 Subject: [ITK] [ITK-users] Siemens 4d data In-Reply-To: References: <98DF486D-EEE7-4F2C-9128-D7CE75F13D3A@gmail.com> Message-ID: <7ECC374E-7315-4D6C-B915-883FA677F57A@gmail.com> Dear Andras and Lambert, here is the code I?m using. Every one of my time series contains the same slice for different times. The problem is that it is importing the series one by one and it seems that it is not working in checking out which slice belong to the same time acquisition. At the end my 4D volume has coordinates [x,y,t,z]. I also tried to switch t- and z-coordinates at the end of my simulation but then I have some problem in the resulting volume (I?m not able to continuing working on it). As you know I can?t share MRI data here, but if you are willing I could send you a small part of them to try to figure out together how to read them... That would help me a lot. Regards and thank you for your time, Sonia nameGenerator -> SetDirectory( _dicomDirectory ); ReaderType::Pointer reader = ReaderType::New(); ShortImageType4D::Pointer image4D = ShortImageType4D::New(); ShortImageType::Pointer image3D = ShortImageType::New(); reader->SetImageIO(dicomIO); const std::string entry_id = "0018|1090 "; nameGenerator->AddSeriesRestriction(entry_id); typedef std::vector< std::string > SeriesIdContainer; const SeriesIdContainer & seriesUID = nameGenerator->GetSeriesUIDs(); SeriesIdContainer::const_iterator seriesItr = seriesUID.begin(); SeriesIdContainer::const_iterator seriesEnd = seriesUID.end(); typedef std::vector< std::string > FileNamesContainer; // figure out how many time points there are based on number of series unsigned int timepoints = 0; while (seriesItr != seriesEnd){ timepoints++; seriesItr++; } std::cout << "Number of time points : " << timepoints << std::endl; seriesItr = seriesUID.begin(); std::cout << "Reading first image : " << std::endl; std::cout << seriesItr->c_str() << std::endl; std::string seriesIdentifier; seriesIdentifier = seriesItr->c_str(); FileNamesContainer fileNames; fileNames = nameGenerator->GetFileNames(seriesIdentifier); FileNamesContainer::iterator fileiterator = fileNames.begin(); std::cout<<"sono qui"<SetFileNames(fileNames); try { reader->Update(); } catch (itk::ExceptionObject &ex) { std::cout << ex << std::endl; } const ShortImageType::SpacingType& spacing3D = reader->GetOutput()->GetSpacing(); std::cout << "Spacing 3D = " << spacing3D[0] << ", " << spacing3D[1] << ", " << spacing3D[2] << std::endl; const ShortImageType::PointType origin3D = reader->GetOutput()->GetOrigin(); std::cout << "Origin 3D = " << origin3D[0] << ", " << origin3D[1] << ", " << origin3D[2] << std::endl; const ShortImageType::SizeType size3D = reader->GetOutput()->GetBufferedRegion().GetSize(); ShortImageType4D::SpacingType spacing4D; ShortImageType4D::PointType origin4D; ShortImageType4D::SizeType size4D; for (int i = 0; i < 3; ++i){ spacing4D[i] = spacing3D[i]; origin4D[i] = origin3D[i]; size4D[i] = size3D[i]; } spacing4D[3] = 1; origin4D[3] = 0; size4D[3] = timepoints; ShortImageType4D::IndexType start4D; start4D.Fill(0); ShortImageType4D::RegionType region4D(start4D, size4D); std::cout << "Spacing 4D = " << spacing4D[0] << ", " << spacing4D[1] << ", " << spacing4D[2] << ", " << spacing4D[3] << std::endl; std::cout << "Size 4D = " << size4D[0] << ", " << size4D[1] << ", " << size4D[2] << ", " << size4D[3] << std::endl; image4D->SetRegions(region4D); image4D->SetSpacing(spacing4D); image4D->SetOrigin(origin4D); image4D->Allocate(); seriesItr = seriesUID.begin(); typedef itk::ImageRegionConstIterator< ShortImageType > Iterator3D; typedef itk::ImageRegionIterator< ShortImageType4D > Iterator4D; Iterator4D it4(image4D, image4D->GetBufferedRegion()); it4.GoToBegin(); unsigned short int idx = 0; while (seriesItr != seriesEnd){ seriesIdentifier = seriesItr->c_str(); std::cout << "Reading series " << std::endl; std::cout << seriesItr->c_str() << std::endl; fileNames = nameGenerator->GetFileNames(seriesIdentifier); for(unsigned int fni = 0; fniSetFileNames(fileNames); image3D = reader->GetOutput(); image3D->SetRegions(reader->GetOutput()->GetRequestedRegion()); image3D->CopyInformation(reader->GetOutput()); image3D->Allocate(); std::cout << "reading image volume " << idx << std::endl << std::endl; try { reader->Update(); } catch (itk::ExceptionObject &ex) { std::cout << ex << std::endl; } Iterator3D it3(image3D, image3D->GetBufferedRegion()); it3.GoToBegin(); while (!it3.IsAtEnd()) { it4.Set(it3.Get()); ++it3; ++it4; } // increment iterator seriesItr++; idx++; } > On 29 Jul 2017, at 20:58, Andras Lasso wrote: > > Finding out what DICOM fields to use for grouping frames is a complex topic. There is no universally accepted standard, the field(s) to use depend on scanner manufacturer, imaging modality, and imaging protocol. > > You can have a look at the 4D image importer logic in 3D Slicer (what DICOM fields are considered, what heuristics are used for automatically detecting special cases, etc): > https://github.com/fedorov/MultiVolumeImporter/blob/master/MultiVolumeImporterPlugin.py > > You may also consider using 3D Slicer for loading DICOM data and saving as a 4D nrrd file that you can then easily load into ITK. If you have any questions related to this then post it on https://discourse.slicer.org . > > Andras > ? <> > From: Community [mailto:community-bounces at itk.org] On Behalf Of Lambert Zijp > Sent: Saturday, July 29, 2017 1:38 PM > To: Sonia Pozzi > Cc: Insight-users > Subject: Re: [ITK] [ITK-users] Siemens 4d data > > Hi Sonia, > > Apparently SeriesInstanceUID does not help; sounds familiar. Maybe FrameNumber, SeriesNumber or AcquisitionNumber? If not, sorting slices on slice coordinate and AcquisitionTime could be done as a last resort. If you post two slices with the same coordinate but belonging to different volumes, I will take look at it. > > Greetings, Lambert > > On Sat, Jul 29, 2017 at 12:26 AM, Sonia Pozzi > wrote: > Hello, > > I have a set of Siemens series. In each series there is the same slice for different times. > I would like to be able to reconstruct in itk each single volume (a complete volume for every time step). > It is a couple of week that I?m trying how to do that? > I understood that I should use some tag, but I?m not sure about which and my code is not working. > > Could you be so kind to give me a suggestion here? > > My regards, > > Sonia > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From lasso at queensu.ca Sun Jul 30 15:50:32 2017 From: lasso at queensu.ca (Andras Lasso) Date: Sun, 30 Jul 2017 19:50:32 +0000 Subject: [ITK] [ITK-users] Siemens 4d data In-Reply-To: <7ECC374E-7315-4D6C-B915-883FA677F57A@gmail.com> References: <98DF486D-EEE7-4F2C-9128-D7CE75F13D3A@gmail.com> , <7ECC374E-7315-4D6C-B915-883FA677F57A@gmail.com> Message-ID: Does Slicer load it correctly as a 4D volume? If yes, you can use that or copy it's behavior on your own software. If Slicer does not load it correctly or you are not sure how to do it, then ask help on the Slicer forum (discourse.slicer.org). Andras From: Sonia Pozzi Sent: Sunday, July 30, 2017 13:10 To: Andras Lasso Cc: Lambert Zijp; Insight-users Subject: Re: [ITK-users] [ITK] Siemens 4d data Dear Andras and Lambert, here is the code I?m using. Every one of my time series contains the same slice for different times. The problem is that it is importing the series one by one and it seems that it is not working in checking out which slice belong to the same time acquisition. At the end my 4D volume has coordinates [x,y,t,z]. I also tried to switch t- and z-coordinates at the end of my simulation but then I have some problem in the resulting volume (I?m not able to continuing working on it). As you know I can?t share MRI data here, but if you are willing I could send you a small part of them to try to figure out together how to read them... That would help me a lot. Regards and thank you for your time, Sonia nameGenerator -> SetDirectory( _dicomDirectory ); ReaderType::Pointer reader = ReaderType::New(); ShortImageType4D::Pointer image4D = ShortImageType4D::New(); ShortImageType::Pointer image3D = ShortImageType::New(); reader->SetImageIO(dicomIO); const std::string entry_id = "0018|1090 "; nameGenerator->AddSeriesRestriction(entry_id); typedef std::vector< std::string > SeriesIdContainer; const SeriesIdContainer & seriesUID = nameGenerator->GetSeriesUIDs(); SeriesIdContainer::const_iterator seriesItr = seriesUID.begin(); SeriesIdContainer::const_iterator seriesEnd = seriesUID.end(); typedef std::vector< std::string > FileNamesContainer; // figure out how many time points there are based on number of series unsigned int timepoints = 0; while (seriesItr != seriesEnd){ timepoints++; seriesItr++; } std::cout << "Number of time points : " << timepoints << std::endl; seriesItr = seriesUID.begin(); std::cout << "Reading first image : " << std::endl; std::cout << seriesItr->c_str() << std::endl; std::string seriesIdentifier; seriesIdentifier = seriesItr->c_str(); FileNamesContainer fileNames; fileNames = nameGenerator->GetFileNames(seriesIdentifier); FileNamesContainer::iterator fileiterator = fileNames.begin(); std::cout<<"sono qui"<SetFileNames(fileNames); try { reader->Update(); } catch (itk::ExceptionObject &ex) { std::cout << ex << std::endl; } const ShortImageType::SpacingType& spacing3D = reader->GetOutput()->GetSpacing(); std::cout << "Spacing 3D = " << spacing3D[0] << ", " << spacing3D[1] << ", " << spacing3D[2] << std::endl; const ShortImageType::PointType origin3D = reader->GetOutput()->GetOrigin(); std::cout << "Origin 3D = " << origin3D[0] << ", " << origin3D[1] << ", " << origin3D[2] << std::endl; const ShortImageType::SizeType size3D = reader->GetOutput()->GetBufferedRegion().GetSize(); ShortImageType4D::SpacingType spacing4D; ShortImageType4D::PointType origin4D; ShortImageType4D::SizeType size4D; for (int i = 0; i < 3; ++i){ spacing4D[i] = spacing3D[i]; origin4D[i] = origin3D[i]; size4D[i] = size3D[i]; } spacing4D[3] = 1; origin4D[3] = 0; size4D[3] = timepoints; ShortImageType4D::IndexType start4D; start4D.Fill(0); ShortImageType4D::RegionType region4D(start4D, size4D); std::cout << "Spacing 4D = " << spacing4D[0] << ", " << spacing4D[1] << ", " << spacing4D[2] << ", " << spacing4D[3] << std::endl; std::cout << "Size 4D = " << size4D[0] << ", " << size4D[1] << ", " << size4D[2] << ", " << size4D[3] << std::endl; image4D->SetRegions(region4D); image4D->SetSpacing(spacing4D); image4D->SetOrigin(origin4D); image4D->Allocate(); seriesItr = seriesUID.begin(); typedef itk::ImageRegionConstIterator< ShortImageType > Iterator3D; typedef itk::ImageRegionIterator< ShortImageType4D > Iterator4D; Iterator4D it4(image4D, image4D->GetBufferedRegion()); it4.GoToBegin(); unsigned short int idx = 0; while (seriesItr != seriesEnd){ seriesIdentifier = seriesItr->c_str(); std::cout << "Reading series " << std::endl; std::cout << seriesItr->c_str() << std::endl; fileNames = nameGenerator->GetFileNames(seriesIdentifier); for(unsigned int fni = 0; fniSetFileNames(fileNames); image3D = reader->GetOutput(); image3D->SetRegions(reader->GetOutput()->GetRequestedRegion()); image3D->CopyInformation(reader->GetOutput()); image3D->Allocate(); std::cout << "reading image volume " << idx << std::endl << std::endl; try { reader->Update(); } catch (itk::ExceptionObject &ex) { std::cout << ex << std::endl; } Iterator3D it3(image3D, image3D->GetBufferedRegion()); it3.GoToBegin(); while (!it3.IsAtEnd()) { it4.Set(it3.Get()); ++it3; ++it4; } // increment iterator seriesItr++; idx++; } On 29 Jul 2017, at 20:58, Andras Lasso > wrote: Finding out what DICOM fields to use for grouping frames is a complex topic. There is no universally accepted standard, the field(s) to use depend on scanner manufacturer, imaging modality, and imaging protocol. You can have a look at the 4D image importer logic in 3D Slicer (what DICOM fields are considered, what heuristics are used for automatically detecting special cases, etc): https://github.com/fedorov/MultiVolumeImporter/blob/master/MultiVolumeImporterPlugin.py You may also consider using 3D Slicer for loading DICOM data and saving as a 4D nrrd file that you can then easily load into ITK. If you have any questions related to this then post it on https://discourse.slicer.org. Andras From: Community [mailto:community-bounces at itk.org] On Behalf Of Lambert Zijp Sent: Saturday, July 29, 2017 1:38 PM To: Sonia Pozzi > Cc: Insight-users > Subject: Re: [ITK] [ITK-users] Siemens 4d data Hi Sonia, Apparently SeriesInstanceUID does not help; sounds familiar. Maybe FrameNumber, SeriesNumber or AcquisitionNumber? If not, sorting slices on slice coordinate and AcquisitionTime could be done as a last resort. If you post two slices with the same coordinate but belonging to different volumes, I will take look at it. Greetings, Lambert On Sat, Jul 29, 2017 at 12:26 AM, Sonia Pozzi > wrote: Hello, I have a set of Siemens series. In each series there is the same slice for different times. I would like to be able to reconstruct in itk each single volume (a complete volume for every time step). It is a couple of week that I?m trying how to do that? I understood that I should use some tag, but I?m not sure about which and my code is not working. Could you be so kind to give me a suggestion here? My regards, Sonia _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From matt.mccormick at kitware.com Mon Jul 31 10:36:25 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Mon, 31 Jul 2017 10:36:25 -0400 Subject: [ITK] [ITK-users] Recommended approach for cross-platform deploying ITK+Vtk+Qt5 In-Reply-To: References: Message-ID: Hi Pablo, Good questions -- C++ ITK/VTK/Qt package development on GitHub CI services is non-trivial. A common issue is timeout's, and a strategy is to use pre-built binaries of ITK/VTK/Qt. Regarding Linux package development, CircleCI is recommended with a custom Docker image that has ITK / VTK / Qt pre-built. Since glibc is forward compatible but not backwards compatible, a base image that uses the oldest version of glibc will generate the most compatible image. For many projects, we use CentOS 5 with a newer GCC, but I think only Qt4 can be built with this and not Qt5. The build can be generated on one Linux Docker image for glibc purposes and tested on another that provides the graphical context. See the CommonTK AppLauncher configuration as an example [1]. This uses the thewtex/opengl Docker image [2] to provide a portable, reproducible, CPU-based graphical testing environment [2]. The CTK AppLauncher is also of interest as an alternative to windowsqtdeploy, etc. It is cross-platform, and provides the setup to use shared libraries and avoid Qt LGPL licensing issues. For Windows builds, the dockcross/windows-x64 (uses MXE/MinGW-x64) image could work nicely. A derived image that builds the MXE packages for ITK / VTK / Qt could be created [3]. Since dockcross also comes with WINE for testing, it may also be possible to use thewtex/opengl for testing on CircleCI (although I have never tried this). For macOS builds, TravisCI has Homebrew installed on their images, and ITK / VTK / Qt can be installed via Homebrew [4]. HTH, Matt [1] https://github.com/commontk/AppLauncher/blob/5b592f1baaa7dd41d68e1cd56a2a82e298196ebe/circle.yml [2] https://github.com/thewtex/docker-opengl [3] http://mxe.cc/ [4] https://blog.kitware.com/kitware-packages-on-os-x-with-homebrew/ On Sun, Jul 30, 2017 at 8:02 AM, Andras Lasso wrote: > Currently, Slicer does not use AppVeyor for continuous integration on > Windows. Also, the full test suite of Slicer takes several hours to run, so > CircleCI only checks for build errors. > > > > Andras > > > > From: Pablo Hern?ndez > Sent: Sunday, July 30, 2017 6:58 > To: Insight-users > Subject: [ITK] [ITK-users] Recommended approach for cross-platform deploying > ITK+Vtk+Qt5 > > > > Hi, > I wonder what is the recommended approach for deploying a cross-platform > application involving ITK+Vtk+Qt nowadays with all the available tools: > docker containers, travis-ci, appveyor, circle-ci etc. > > Is it still recommended to create a SuperBuild with all your dependencies as > ExternalProjects in CMake? How do you reduce the time it takes to build? > The build time for all my dependencies (Vtk (with qt5), ITK, boost) plus my > small app is surpassing the 60min limit in both, AppVeyor and Travis-CI. To > alleviate this, do you use docker?. > > My main concern is Windows, I have seen that @thewtex and @jcfr have a repo > with closs-platform buildings ( https://github.com/dockcross/dockcross ), > there is a Windows64 there with Mingw that might help. I have no idea if I > can generate windows binaries from AppVeyor using docker, or instead, I > generate them using that docker image with Wine+MinGw in Travis-CI. > > Instead of CPack from CMake I have been thinking to use windowsqtdeploy, > linuxqtdeploy from Qt... > > I have been looking to Slicer source code to see how they are doing it, and > it seems super structured, but not 100% sure how they generate their nightly > packages ( I guess it involves these docker images: > https://github.com/thewtex/SlicerDocker, but also in Windows?) > > Maybe this is the not best forum to ask, but if you have any recommendations > for deploying a small GUI app based on ITK, I will be extremely grateful to > hear them. Thanks! > > Cheers, > Pablo > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From matt.mccormick at kitware.com Mon Jul 31 10:48:32 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Mon, 31 Jul 2017 10:48:32 -0400 Subject: [ITK] [ITK-users] Which iterator to use for spherical or cylindrical neighborhood In-Reply-To: References: Message-ID: Hi Jonas, Perhaps the itk::RegionOfInterestImageFilter is what you want? https://itk.org/ITKExamples/src/Filtering/ImageGrid/ExtractRegionOfInterestInOneImage/Documentation.html Hope this helps, Matt On Sat, Jul 29, 2017 at 12:01 PM, Jonas Teuwen wrote: > Hi all, > > I have point annotations in images which can be a little bit 'off center', a > solution would be to find the maximum in a spherical or cylindrical region. > For instance, if I have annotation, (a,b, c) I would want (x - a)^2 + (y - > b)^2 <= some radius and |z - c| < height or (x - a)^2 + (y - b)^2 + (z - > c)^2 <= some radius. > > I know I can use MinimumMaximumFilter for this, but how do I find this in > the requested neighborhood? > > Best, > Jonas Teuwen > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From matt.mccormick at kitware.com Mon Jul 31 10:57:58 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Mon, 31 Jul 2017 10:57:58 -0400 Subject: [ITK] [ITK-users] How to use smart pointer in WrapITK? In-Reply-To: <840875744.2072319.1501340311173@mail.yahoo.com> References: <1276609631.2049671.1501338640801.ref@mail.yahoo.com> <1276609631.2049671.1501338640801@mail.yahoo.com> <840875744.2072319.1501340311173@mail.yahoo.com> Message-ID: Hi Nick, Thanks for bringing this up -- you found a bug. The method should be returning a raw pointer instead of a SmartPointer. Please review this patch, which will address the issue: http://review.source.kitware.com/#/c/22546/ Thanks, Matt On Sat, Jul 29, 2017 at 10:58 AM, Nick Cullen via Insight-users wrote: > I guess my work around for now is to add this function to > itkN4BiasFieldCorrectionImageFilter.h: > > const BiasFieldControlPointLatticeType* > GetBiasFieldControlPointLatticeImage() const > { > return static_cast( > this->m_LogBiasFieldControlPointLattice ); > } > > > > On Saturday, July 29, 2017 10:35 AM, Nick Cullen via Insight-users > wrote: > > > When I run itk.N4BiasFieldCorrectionImageFilter, I want to get the control > point lattice, but when I run: > > correcter.GetLogBiasFieldControlPointLattice() > > It returns a SmartPointer: itk::Image< itk::Vector< float,1 >,2 > > *' at 0x15e775300> > > Can I get the actual image from this in WrapITK? Is this happening because I > haven't wrapped another class - specifically > itk::BSplineScatteredDataPointSetToImageFilter, which is where the > LogBiasFieldControlPointLattice comes from? > > Thanks!! > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > > > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From matt.mccormick at kitware.com Mon Jul 31 11:33:00 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Mon, 31 Jul 2017 11:33:00 -0400 Subject: [ITK] [ITK-users] Problems Using GPU Filters In-Reply-To: <1501002308962-7590057.post@n2.nabble.com> References: <1498789176254-7590036.post@n2.nabble.com> <1501002308962-7590057.post@n2.nabble.com> Message-ID: Hi Andaharoo, If you use itk::GPUImage for the filters, it can be used in the pipelines, and it will present a version of the image's pixel buffer in the CPU's memory when needed. See, for example, https://github.com/InsightSoftwareConsortium/ITK/blob/53927cdef2ed0f783d20ac5b79c6aa435a6da08b/Modules/Filtering/GPUAnisotropicSmoothing/test/itkGPUGradientAnisotropicDiffusionImageFilterTest.cxx Hope this helps, Matt On Tue, Jul 25, 2017 at 1:05 PM, Andaharoo wrote: > How exactly do I load/setup a GPUImage. There seem to be tons of examples on > how to make GPU filters but none on how to use them? Or convert between a > regular itk image and a GPUImage. > > > > -- > View this message in context: http://itk-insight-users.2283740.n2.nabble.com/Problems-Using-GPU-Filters-tp7590036p7590057.html > Sent from the ITK Insight Users mailing list archive at Nabble.com. > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From dzenanz at gmail.com Mon Jul 31 15:23:33 2017 From: dzenanz at gmail.com (=?UTF-8?B?RMW+ZW5hbiBadWtpxIc=?=) Date: Mon, 31 Jul 2017 15:23:33 -0400 Subject: [ITK] [ITK-users] 3-D support for BinaryPruningImageFilter In-Reply-To: <484A4E48-73AF-4624-A9F1-09266DDA5911@mathworks.com> References: <484A4E48-73AF-4624-A9F1-09266DDA5911@mathworks.com> Message-ID: Hi Anchit, I took a look at the source code, and it does seem to be 2D-only. Regards, D?enan Zuki?, PhD, Senior R&D Engineer, Kitware (Carrboro, N.C.) On Fri, Jul 28, 2017 at 1:58 PM, Anchit Dhar wrote: > Hello, > > > > I have written a module to prune branches of a 3-D Skeleton using ITK?s BinaryPruningImageFilter. > The filter is returning unexpected pruned results for a 3-D skeleton input. > > > > The doxygen page > > for the filter states that ? > > *?The algorithm is the N-dimensional version of that given for two > dimensions in: Rafael C. Gonzales and Richard E. Woods. Digital Image > Processing. Addison > Wesley, 491-494, (1993).?* > > But, from the source code of BinaryPruningImageFilter it appears that > pruning is being performed considering 2-D neighbors only and hence does > not support 3-D. Can someone please confirm this? > > Thanks. > > -Anchit > > > > > > > > > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From jonasteuwen at gmail.com Mon Jul 31 15:55:40 2017 From: jonasteuwen at gmail.com (Jonas Teuwen) Date: Mon, 31 Jul 2017 21:55:40 +0200 Subject: [ITK] [ITK-users] SliceBySliceImageFilter Message-ID: Hi all, I have 3D images on which I apply a collection of filters slice-by-slice. I discovered the 'SliceBySliceImageFilter'. The 2D filter contains things such as, after I read the 2D images: typedef itk::FlatStructuringElement< Dimension > StructuringElementType; StructuringElementType::RadiusType radius; radius.Fill( radiusValue ); StructuringElementType structuringElement = StructuringElementType::Annulus(radius, outerRadius, false, false); typedef itk::GrayscaleDilateImageFilter< FloatImageType, ImageType, StructuringElementType > GrayscaleDilateImageFilterType; GrayscaleDilateImageFilterType::Pointer dilateFilter = GrayscaleDilateImageFilterType::New(); dilateFilter->SetInput( reader ->GetOutput() ); dilateFilter->SetKernel( structuringElement ); //dilateOutput = dilateFilter->GetOutput(); typedef itk::MinimumImageFilter MinimumImageFilterType; MinimumImageFilterType::Pointer minimumImageFilter = MinimumImageFilterType::New (); minimumImageFilter->SetInput(0, reader->GetOutput()); minimumImageFilter->SetInput(1, dilateFilter->GetOutput()); minimumImageFilter->Update(); then I have the output in minimumImageFilter->GetOutput(); However, when I apply SliceBySlice Image filter, my reader is the one of a 3D image, but the minimum filter also uses the reader->GetOutput() which has to be in 2D. How do approach this problem? Best, Jonas -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From matt.mccormick at kitware.com Mon Jul 31 17:07:44 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Mon, 31 Jul 2017 17:07:44 -0400 Subject: [ITK] Migration to GitHub Message-ID: Hi folks, We are considering migration of ITK's software process to GitHub, and we would like your feedback. As an open-source, community-driven project, mechanisms to communicate and interact with the community are a high priority for ITK. Contributing should be as easy as possible. Increasingly over the past many years, GitHub has become the de facto place to interact for open source development. It is now a hub for: Microsoft Facebook Google The Scientific Python Community The 3D Slicer Community Our InsightSoftwareConsortium GitHub organization [1] already has 67 people in it and 74 repositories. There are hundreds of projects that depend on ITK on GitHub. Many ITK developers are familiar with the development process on GitHub (i.e the pull request process) and already have an account on this platform. There are also advantages to linking issues and commits with other projects and repositories. Since ITK thrives on the open-source development idea, everyone who wants to help the project should be able to contribute, and therefore it should be as easy as possible to start participating in the community. Recently, GitHub's code review capabilities have greatly improved, which make it more feasible to coordinate contributions for a large project like ITK. And, there are many existing GitHub-integrated services that we can leverage. Thanks to resources from the National Library of Medicine and technological advances, it is now feasible to migrate the project's software process to GitHub. There are many infrastructural aspects to the migration, and it would take multiple months to complete. Please let us know your thoughts before we embark on the journey. [1] https://github.com/InsightSoftwareConsortium From millerjv at gmail.com Mon Jul 31 17:56:57 2017 From: millerjv at gmail.com (Jim Miller) Date: Mon, 31 Jul 2017 17:56:57 -0400 Subject: [ITK] [ITK-users] Migration to GitHub In-Reply-To: References: Message-ID: +1 Jim > On Jul 31, 2017, at 5:07 PM, Matt McCormick wrote: > > Hi folks, > > We are considering migration of ITK's software process to GitHub, and > we would like your feedback. > > As an open-source, community-driven project, mechanisms to communicate > and interact with the community are a high priority for ITK. > Contributing should be as easy as possible. Increasingly over the past > many years, GitHub has become the de facto place to interact for open > source development. It is now a hub for: > > Microsoft > Facebook > Google > The Scientific Python Community > The 3D Slicer Community > > Our InsightSoftwareConsortium GitHub organization [1] already has 67 > people in it and 74 repositories. There are hundreds of projects that > depend on ITK on GitHub. Many ITK developers are familiar with the > development process on GitHub (i.e the pull request process) and > already have an account on this platform. There are also advantages to > linking issues and commits with other projects and repositories. Since > ITK thrives on the open-source development idea, everyone who wants to > help the project should be able to contribute, and therefore it should > be as easy as possible to start participating in the community. > > Recently, GitHub's code review capabilities have greatly improved, > which make it more feasible to coordinate contributions for a large > project like ITK. And, there are many existing GitHub-integrated > services that we can leverage. > > Thanks to resources from the National Library of Medicine and > technological advances, it is now feasible to migrate the project's > software process to GitHub. There are many infrastructural aspects to > the migration, and it would take multiple months to complete. Please > let us know your thoughts before we embark on the journey. > > > [1] https://github.com/InsightSoftwareConsortium > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users From hans-johnson at uiowa.edu Mon Jul 31 18:03:46 2017 From: hans-johnson at uiowa.edu (Johnson, Hans J) Date: Mon, 31 Jul 2017 22:03:46 +0000 Subject: [ITK] [ITK-users] Migration to GitHub In-Reply-To: References: Message-ID: 1000 x +1 I enthusiastically support this proposal. Hans On 7/31/17, 4:57 PM, "Insight-users on behalf of Jim Miller" wrote: +1 Jim > On Jul 31, 2017, at 5:07 PM, Matt McCormick wrote: > > Hi folks, > > We are considering migration of ITK's software process to GitHub, and > we would like your feedback. > > As an open-source, community-driven project, mechanisms to communicate > and interact with the community are a high priority for ITK. > Contributing should be as easy as possible. Increasingly over the past > many years, GitHub has become the de facto place to interact for open > source development. It is now a hub for: > > Microsoft > Facebook > Google > The Scientific Python Community > The 3D Slicer Community > > Our InsightSoftwareConsortium GitHub organization [1] already has 67 > people in it and 74 repositories. There are hundreds of projects that > depend on ITK on GitHub. Many ITK developers are familiar with the > development process on GitHub (i.e the pull request process) and > already have an account on this platform. There are also advantages to > linking issues and commits with other projects and repositories. Since > ITK thrives on the open-source development idea, everyone who wants to > help the project should be able to contribute, and therefore it should > be as easy as possible to start participating in the community. > > Recently, GitHub's code review capabilities have greatly improved, > which make it more feasible to coordinate contributions for a large > project like ITK. And, there are many existing GitHub-integrated > services that we can leverage. > > Thanks to resources from the National Library of Medicine and > technological advances, it is now feasible to migrate the project's > software process to GitHub. There are many infrastructural aspects to > the migration, and it would take multiple months to complete. Please > let us know your thoughts before we embark on the journey. > > > [1] https://github.com/InsightSoftwareConsortium > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From hans-johnson at uiowa.edu Mon Jul 31 18:03:46 2017 From: hans-johnson at uiowa.edu (Johnson, Hans J) Date: Mon, 31 Jul 2017 22:03:46 +0000 Subject: [ITK] [ITK-dev] [ITK-users] Migration to GitHub In-Reply-To: References: Message-ID: 1000 x +1 I enthusiastically support this proposal. Hans On 7/31/17, 4:57 PM, "Insight-users on behalf of Jim Miller" wrote: +1 Jim > On Jul 31, 2017, at 5:07 PM, Matt McCormick wrote: > > Hi folks, > > We are considering migration of ITK's software process to GitHub, and > we would like your feedback. > > As an open-source, community-driven project, mechanisms to communicate > and interact with the community are a high priority for ITK. > Contributing should be as easy as possible. Increasingly over the past > many years, GitHub has become the de facto place to interact for open > source development. It is now a hub for: > > Microsoft > Facebook > Google > The Scientific Python Community > The 3D Slicer Community > > Our InsightSoftwareConsortium GitHub organization [1] already has 67 > people in it and 74 repositories. There are hundreds of projects that > depend on ITK on GitHub. Many ITK developers are familiar with the > development process on GitHub (i.e the pull request process) and > already have an account on this platform. There are also advantages to > linking issues and commits with other projects and repositories. Since > ITK thrives on the open-source development idea, everyone who wants to > help the project should be able to contribute, and therefore it should > be as easy as possible to start participating in the community. > > Recently, GitHub's code review capabilities have greatly improved, > which make it more feasible to coordinate contributions for a large > project like ITK. And, there are many existing GitHub-integrated > services that we can leverage. > > Thanks to resources from the National Library of Medicine and > technological advances, it is now feasible to migrate the project's > software process to GitHub. There are many infrastructural aspects to > the migration, and it would take multiple months to complete. Please > let us know your thoughts before we embark on the journey. > > > [1] https://github.com/InsightSoftwareConsortium > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers From bill.lorensen at gmail.com Mon Jul 31 18:42:38 2017 From: bill.lorensen at gmail.com (Bill Lorensen) Date: Mon, 31 Jul 2017 18:42:38 -0400 Subject: [ITK] [ITK-dev] [ITK-users] Migration to GitHub In-Reply-To: References: Message-ID: Vtk moved to gitlab. Have you checked with the Kitware folks to see why they didn't use gitlab? For me, either github or gitlab is great. On Jul 31, 2017 6:03 PM, "Johnson, Hans J" wrote: > 1000 x +1 > > I enthusiastically support this proposal. > > Hans > > > On 7/31/17, 4:57 PM, "Insight-users on behalf of Jim Miller" < > insight-users-bounces at itk.org on behalf of millerjv at gmail.com> wrote: > > +1 > > Jim > > > On Jul 31, 2017, at 5:07 PM, Matt McCormick < > matt.mccormick at kitware.com> wrote: > > > > Hi folks, > > > > We are considering migration of ITK's software process to GitHub, and > > we would like your feedback. > > > > As an open-source, community-driven project, mechanisms to > communicate > > and interact with the community are a high priority for ITK. > > Contributing should be as easy as possible. Increasingly over the > past > > many years, GitHub has become the de facto place to interact for open > > source development. It is now a hub for: > > > > Microsoft > > Facebook > > Google > > The Scientific Python Community > > The 3D Slicer Community > > > > Our InsightSoftwareConsortium GitHub organization [1] already has 67 > > people in it and 74 repositories. There are hundreds of projects that > > depend on ITK on GitHub. Many ITK developers are familiar with the > > development process on GitHub (i.e the pull request process) and > > already have an account on this platform. There are also advantages > to > > linking issues and commits with other projects and repositories. > Since > > ITK thrives on the open-source development idea, everyone who wants > to > > help the project should be able to contribute, and therefore it > should > > be as easy as possible to start participating in the community. > > > > Recently, GitHub's code review capabilities have greatly improved, > > which make it more feasible to coordinate contributions for a large > > project like ITK. And, there are many existing GitHub-integrated > > services that we can leverage. > > > > Thanks to resources from the National Library of Medicine and > > technological advances, it is now feasible to migrate the project's > > software process to GitHub. There are many infrastructural aspects to > > the migration, and it would take multiple months to complete. Please > > let us know your thoughts before we embark on the journey. > > > > > > [1] https://github.com/InsightSoftwareConsortium > > _____________________________________ > > Powered by www.kitware.com > > > > Visit other Kitware open-source projects at > > http://www.kitware.com/opensource/opensource.html > > > > Kitware offers ITK Training Courses, for more information visit: > > http://www.kitware.com/products/protraining.php > > > > Please keep messages on-topic and check the ITK FAQ at: > > http://www.itk.org/Wiki/ITK_FAQ > > > > Follow this link to subscribe/unsubscribe: > > http://public.kitware.com/mailman/listinfo/insight-users > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers From bill.lorensen at gmail.com Mon Jul 31 18:42:38 2017 From: bill.lorensen at gmail.com (Bill Lorensen) Date: Mon, 31 Jul 2017 18:42:38 -0400 Subject: [ITK] [ITK-users] Migration to GitHub In-Reply-To: References: Message-ID: Vtk moved to gitlab. Have you checked with the Kitware folks to see why they didn't use gitlab? For me, either github or gitlab is great. On Jul 31, 2017 6:03 PM, "Johnson, Hans J" wrote: > 1000 x +1 > > I enthusiastically support this proposal. > > Hans > > > On 7/31/17, 4:57 PM, "Insight-users on behalf of Jim Miller" < > insight-users-bounces at itk.org on behalf of millerjv at gmail.com> wrote: > > +1 > > Jim > > > On Jul 31, 2017, at 5:07 PM, Matt McCormick < > matt.mccormick at kitware.com> wrote: > > > > Hi folks, > > > > We are considering migration of ITK's software process to GitHub, and > > we would like your feedback. > > > > As an open-source, community-driven project, mechanisms to > communicate > > and interact with the community are a high priority for ITK. > > Contributing should be as easy as possible. Increasingly over the > past > > many years, GitHub has become the de facto place to interact for open > > source development. It is now a hub for: > > > > Microsoft > > Facebook > > Google > > The Scientific Python Community > > The 3D Slicer Community > > > > Our InsightSoftwareConsortium GitHub organization [1] already has 67 > > people in it and 74 repositories. There are hundreds of projects that > > depend on ITK on GitHub. Many ITK developers are familiar with the > > development process on GitHub (i.e the pull request process) and > > already have an account on this platform. There are also advantages > to > > linking issues and commits with other projects and repositories. > Since > > ITK thrives on the open-source development idea, everyone who wants > to > > help the project should be able to contribute, and therefore it > should > > be as easy as possible to start participating in the community. > > > > Recently, GitHub's code review capabilities have greatly improved, > > which make it more feasible to coordinate contributions for a large > > project like ITK. And, there are many existing GitHub-integrated > > services that we can leverage. > > > > Thanks to resources from the National Library of Medicine and > > technological advances, it is now feasible to migrate the project's > > software process to GitHub. There are many infrastructural aspects to > > the migration, and it would take multiple months to complete. Please > > let us know your thoughts before we embark on the journey. > > > > > > [1] https://github.com/InsightSoftwareConsortium > > _____________________________________ > > Powered by www.kitware.com > > > > Visit other Kitware open-source projects at > > http://www.kitware.com/opensource/opensource.html > > > > Kitware offers ITK Training Courses, for more information visit: > > http://www.kitware.com/products/protraining.php > > > > Please keep messages on-topic and check the ITK FAQ at: > > http://www.itk.org/Wiki/ITK_FAQ > > > > Follow this link to subscribe/unsubscribe: > > http://public.kitware.com/mailman/listinfo/insight-users > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > > > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From matt.mccormick at kitware.com Mon Jul 31 19:00:13 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Mon, 31 Jul 2017 19:00:13 -0400 Subject: [ITK] [ITK-dev] [ITK-users] Migration to GitHub In-Reply-To: References: Message-ID: I have followed VTK's migration to GitLab, and Kitware has done an excellent job with it. That said, I still think GitHub is the better choice for ITK. Also, the technical and social situation has changed in the time since VTK moved to GitLab. I think the key factor is "community", and GitHub has the open source community. On Mon, Jul 31, 2017 at 6:42 PM, Bill Lorensen wrote: > Vtk moved to gitlab. Have you checked with the Kitware folks to see why > they didn't use gitlab? For me, either github or gitlab is great. > > On Jul 31, 2017 6:03 PM, "Johnson, Hans J" wrote: >> >> 1000 x +1 >> >> I enthusiastically support this proposal. >> >> Hans >> >> >> On 7/31/17, 4:57 PM, "Insight-users on behalf of Jim Miller" >> wrote: >> >> +1 >> >> Jim >> >> > On Jul 31, 2017, at 5:07 PM, Matt McCormick >> wrote: >> > >> > Hi folks, >> > >> > We are considering migration of ITK's software process to GitHub, >> and >> > we would like your feedback. >> > >> > As an open-source, community-driven project, mechanisms to >> communicate >> > and interact with the community are a high priority for ITK. >> > Contributing should be as easy as possible. Increasingly over the >> past >> > many years, GitHub has become the de facto place to interact for >> open >> > source development. It is now a hub for: >> > >> > Microsoft >> > Facebook >> > Google >> > The Scientific Python Community >> > The 3D Slicer Community >> > >> > Our InsightSoftwareConsortium GitHub organization [1] already has 67 >> > people in it and 74 repositories. There are hundreds of projects >> that >> > depend on ITK on GitHub. Many ITK developers are familiar with the >> > development process on GitHub (i.e the pull request process) and >> > already have an account on this platform. There are also advantages >> to >> > linking issues and commits with other projects and repositories. >> Since >> > ITK thrives on the open-source development idea, everyone who wants >> to >> > help the project should be able to contribute, and therefore it >> should >> > be as easy as possible to start participating in the community. >> > >> > Recently, GitHub's code review capabilities have greatly improved, >> > which make it more feasible to coordinate contributions for a large >> > project like ITK. And, there are many existing GitHub-integrated >> > services that we can leverage. >> > >> > Thanks to resources from the National Library of Medicine and >> > technological advances, it is now feasible to migrate the project's >> > software process to GitHub. There are many infrastructural aspects >> to >> > the migration, and it would take multiple months to complete. Please >> > let us know your thoughts before we embark on the journey. >> > >> > >> > [1] https://github.com/InsightSoftwareConsortium >> > _____________________________________ >> > Powered by www.kitware.com >> > >> > Visit other Kitware open-source projects at >> > http://www.kitware.com/opensource/opensource.html >> > >> > Kitware offers ITK Training Courses, for more information visit: >> > http://www.kitware.com/products/protraining.php >> > >> > Please keep messages on-topic and check the ITK FAQ at: >> > http://www.itk.org/Wiki/ITK_FAQ >> > >> > Follow this link to subscribe/unsubscribe: >> > http://public.kitware.com/mailman/listinfo/insight-users >> _____________________________________ >> Powered by www.kitware.com >> >> Visit other Kitware open-source projects at >> http://www.kitware.com/opensource/opensource.html >> >> Kitware offers ITK Training Courses, for more information visit: >> http://www.kitware.com/products/protraining.php >> >> Please keep messages on-topic and check the ITK FAQ at: >> http://www.itk.org/Wiki/ITK_FAQ >> >> Follow this link to subscribe/unsubscribe: >> http://public.kitware.com/mailman/listinfo/insight-users >> >> >> _____________________________________ >> Powered by www.kitware.com >> >> Visit other Kitware open-source projects at >> http://www.kitware.com/opensource/opensource.html >> >> Kitware offers ITK Training Courses, for more information visit: >> http://www.kitware.com/products/protraining.php >> >> Please keep messages on-topic and check the ITK FAQ at: >> http://www.itk.org/Wiki/ITK_FAQ >> >> Follow this link to subscribe/unsubscribe: >> http://public.kitware.com/mailman/listinfo/insight-users _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers From matt.mccormick at kitware.com Mon Jul 31 19:00:13 2017 From: matt.mccormick at kitware.com (Matt McCormick) Date: Mon, 31 Jul 2017 19:00:13 -0400 Subject: [ITK] [ITK-users] Migration to GitHub In-Reply-To: References: Message-ID: I have followed VTK's migration to GitLab, and Kitware has done an excellent job with it. That said, I still think GitHub is the better choice for ITK. Also, the technical and social situation has changed in the time since VTK moved to GitLab. I think the key factor is "community", and GitHub has the open source community. On Mon, Jul 31, 2017 at 6:42 PM, Bill Lorensen wrote: > Vtk moved to gitlab. Have you checked with the Kitware folks to see why > they didn't use gitlab? For me, either github or gitlab is great. > > On Jul 31, 2017 6:03 PM, "Johnson, Hans J" wrote: >> >> 1000 x +1 >> >> I enthusiastically support this proposal. >> >> Hans >> >> >> On 7/31/17, 4:57 PM, "Insight-users on behalf of Jim Miller" >> wrote: >> >> +1 >> >> Jim >> >> > On Jul 31, 2017, at 5:07 PM, Matt McCormick >> wrote: >> > >> > Hi folks, >> > >> > We are considering migration of ITK's software process to GitHub, >> and >> > we would like your feedback. >> > >> > As an open-source, community-driven project, mechanisms to >> communicate >> > and interact with the community are a high priority for ITK. >> > Contributing should be as easy as possible. Increasingly over the >> past >> > many years, GitHub has become the de facto place to interact for >> open >> > source development. It is now a hub for: >> > >> > Microsoft >> > Facebook >> > Google >> > The Scientific Python Community >> > The 3D Slicer Community >> > >> > Our InsightSoftwareConsortium GitHub organization [1] already has 67 >> > people in it and 74 repositories. There are hundreds of projects >> that >> > depend on ITK on GitHub. Many ITK developers are familiar with the >> > development process on GitHub (i.e the pull request process) and >> > already have an account on this platform. There are also advantages >> to >> > linking issues and commits with other projects and repositories. >> Since >> > ITK thrives on the open-source development idea, everyone who wants >> to >> > help the project should be able to contribute, and therefore it >> should >> > be as easy as possible to start participating in the community. >> > >> > Recently, GitHub's code review capabilities have greatly improved, >> > which make it more feasible to coordinate contributions for a large >> > project like ITK. And, there are many existing GitHub-integrated >> > services that we can leverage. >> > >> > Thanks to resources from the National Library of Medicine and >> > technological advances, it is now feasible to migrate the project's >> > software process to GitHub. There are many infrastructural aspects >> to >> > the migration, and it would take multiple months to complete. Please >> > let us know your thoughts before we embark on the journey. >> > >> > >> > [1] https://github.com/InsightSoftwareConsortium >> > _____________________________________ >> > Powered by www.kitware.com >> > >> > Visit other Kitware open-source projects at >> > http://www.kitware.com/opensource/opensource.html >> > >> > Kitware offers ITK Training Courses, for more information visit: >> > http://www.kitware.com/products/protraining.php >> > >> > Please keep messages on-topic and check the ITK FAQ at: >> > http://www.itk.org/Wiki/ITK_FAQ >> > >> > Follow this link to subscribe/unsubscribe: >> > http://public.kitware.com/mailman/listinfo/insight-users >> _____________________________________ >> Powered by www.kitware.com >> >> Visit other Kitware open-source projects at >> http://www.kitware.com/opensource/opensource.html >> >> Kitware offers ITK Training Courses, for more information visit: >> http://www.kitware.com/products/protraining.php >> >> Please keep messages on-topic and check the ITK FAQ at: >> http://www.itk.org/Wiki/ITK_FAQ >> >> Follow this link to subscribe/unsubscribe: >> http://public.kitware.com/mailman/listinfo/insight-users >> >> >> _____________________________________ >> Powered by www.kitware.com >> >> Visit other Kitware open-source projects at >> http://www.kitware.com/opensource/opensource.html >> >> Kitware offers ITK Training Courses, for more information visit: >> http://www.kitware.com/products/protraining.php >> >> Please keep messages on-topic and check the ITK FAQ at: >> http://www.itk.org/Wiki/ITK_FAQ >> >> Follow this link to subscribe/unsubscribe: >> http://public.kitware.com/mailman/listinfo/insight-users _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From bill.lorensen at gmail.com Mon Jul 31 19:22:56 2017 From: bill.lorensen at gmail.com (Bill Lorensen) Date: Mon, 31 Jul 2017 19:22:56 -0400 Subject: [ITK] [ITK-dev] [ITK-users] Migration to GitHub In-Reply-To: References: Message-ID: I agree. I argued against gitlab but lost... +1 for this move. On Mon, Jul 31, 2017 at 7:00 PM, Matt McCormick wrote: > I have followed VTK's migration to GitLab, and Kitware has done an > excellent job with it. That said, I still think GitHub is the better > choice for ITK. Also, the technical and social situation has changed > in the time since VTK moved to GitLab. > > I think the key factor is "community", and GitHub has the open source community. > > On Mon, Jul 31, 2017 at 6:42 PM, Bill Lorensen wrote: >> Vtk moved to gitlab. Have you checked with the Kitware folks to see why >> they didn't use gitlab? For me, either github or gitlab is great. >> >> On Jul 31, 2017 6:03 PM, "Johnson, Hans J" wrote: >>> >>> 1000 x +1 >>> >>> I enthusiastically support this proposal. >>> >>> Hans >>> >>> >>> On 7/31/17, 4:57 PM, "Insight-users on behalf of Jim Miller" >>> wrote: >>> >>> +1 >>> >>> Jim >>> >>> > On Jul 31, 2017, at 5:07 PM, Matt McCormick >>> wrote: >>> > >>> > Hi folks, >>> > >>> > We are considering migration of ITK's software process to GitHub, >>> and >>> > we would like your feedback. >>> > >>> > As an open-source, community-driven project, mechanisms to >>> communicate >>> > and interact with the community are a high priority for ITK. >>> > Contributing should be as easy as possible. Increasingly over the >>> past >>> > many years, GitHub has become the de facto place to interact for >>> open >>> > source development. It is now a hub for: >>> > >>> > Microsoft >>> > Facebook >>> > Google >>> > The Scientific Python Community >>> > The 3D Slicer Community >>> > >>> > Our InsightSoftwareConsortium GitHub organization [1] already has 67 >>> > people in it and 74 repositories. There are hundreds of projects >>> that >>> > depend on ITK on GitHub. Many ITK developers are familiar with the >>> > development process on GitHub (i.e the pull request process) and >>> > already have an account on this platform. There are also advantages >>> to >>> > linking issues and commits with other projects and repositories. >>> Since >>> > ITK thrives on the open-source development idea, everyone who wants >>> to >>> > help the project should be able to contribute, and therefore it >>> should >>> > be as easy as possible to start participating in the community. >>> > >>> > Recently, GitHub's code review capabilities have greatly improved, >>> > which make it more feasible to coordinate contributions for a large >>> > project like ITK. And, there are many existing GitHub-integrated >>> > services that we can leverage. >>> > >>> > Thanks to resources from the National Library of Medicine and >>> > technological advances, it is now feasible to migrate the project's >>> > software process to GitHub. There are many infrastructural aspects >>> to >>> > the migration, and it would take multiple months to complete. Please >>> > let us know your thoughts before we embark on the journey. >>> > >>> > >>> > [1] https://github.com/InsightSoftwareConsortium >>> > _____________________________________ >>> > Powered by www.kitware.com >>> > >>> > Visit other Kitware open-source projects at >>> > http://www.kitware.com/opensource/opensource.html >>> > >>> > Kitware offers ITK Training Courses, for more information visit: >>> > http://www.kitware.com/products/protraining.php >>> > >>> > Please keep messages on-topic and check the ITK FAQ at: >>> > http://www.itk.org/Wiki/ITK_FAQ >>> > >>> > Follow this link to subscribe/unsubscribe: >>> > http://public.kitware.com/mailman/listinfo/insight-users >>> _____________________________________ >>> Powered by www.kitware.com >>> >>> Visit other Kitware open-source projects at >>> http://www.kitware.com/opensource/opensource.html >>> >>> Kitware offers ITK Training Courses, for more information visit: >>> http://www.kitware.com/products/protraining.php >>> >>> Please keep messages on-topic and check the ITK FAQ at: >>> http://www.itk.org/Wiki/ITK_FAQ >>> >>> Follow this link to subscribe/unsubscribe: >>> http://public.kitware.com/mailman/listinfo/insight-users >>> >>> >>> _____________________________________ >>> Powered by www.kitware.com >>> >>> Visit other Kitware open-source projects at >>> http://www.kitware.com/opensource/opensource.html >>> >>> Kitware offers ITK Training Courses, for more information visit: >>> http://www.kitware.com/products/protraining.php >>> >>> Please keep messages on-topic and check the ITK FAQ at: >>> http://www.itk.org/Wiki/ITK_FAQ >>> >>> Follow this link to subscribe/unsubscribe: >>> http://public.kitware.com/mailman/listinfo/insight-users -- Unpaid intern in BillsBasement at noware dot com _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers From bill.lorensen at gmail.com Mon Jul 31 19:22:56 2017 From: bill.lorensen at gmail.com (Bill Lorensen) Date: Mon, 31 Jul 2017 19:22:56 -0400 Subject: [ITK] [ITK-users] Migration to GitHub In-Reply-To: References: Message-ID: I agree. I argued against gitlab but lost... +1 for this move. On Mon, Jul 31, 2017 at 7:00 PM, Matt McCormick wrote: > I have followed VTK's migration to GitLab, and Kitware has done an > excellent job with it. That said, I still think GitHub is the better > choice for ITK. Also, the technical and social situation has changed > in the time since VTK moved to GitLab. > > I think the key factor is "community", and GitHub has the open source community. > > On Mon, Jul 31, 2017 at 6:42 PM, Bill Lorensen wrote: >> Vtk moved to gitlab. Have you checked with the Kitware folks to see why >> they didn't use gitlab? For me, either github or gitlab is great. >> >> On Jul 31, 2017 6:03 PM, "Johnson, Hans J" wrote: >>> >>> 1000 x +1 >>> >>> I enthusiastically support this proposal. >>> >>> Hans >>> >>> >>> On 7/31/17, 4:57 PM, "Insight-users on behalf of Jim Miller" >>> wrote: >>> >>> +1 >>> >>> Jim >>> >>> > On Jul 31, 2017, at 5:07 PM, Matt McCormick >>> wrote: >>> > >>> > Hi folks, >>> > >>> > We are considering migration of ITK's software process to GitHub, >>> and >>> > we would like your feedback. >>> > >>> > As an open-source, community-driven project, mechanisms to >>> communicate >>> > and interact with the community are a high priority for ITK. >>> > Contributing should be as easy as possible. Increasingly over the >>> past >>> > many years, GitHub has become the de facto place to interact for >>> open >>> > source development. It is now a hub for: >>> > >>> > Microsoft >>> > Facebook >>> > Google >>> > The Scientific Python Community >>> > The 3D Slicer Community >>> > >>> > Our InsightSoftwareConsortium GitHub organization [1] already has 67 >>> > people in it and 74 repositories. There are hundreds of projects >>> that >>> > depend on ITK on GitHub. Many ITK developers are familiar with the >>> > development process on GitHub (i.e the pull request process) and >>> > already have an account on this platform. There are also advantages >>> to >>> > linking issues and commits with other projects and repositories. >>> Since >>> > ITK thrives on the open-source development idea, everyone who wants >>> to >>> > help the project should be able to contribute, and therefore it >>> should >>> > be as easy as possible to start participating in the community. >>> > >>> > Recently, GitHub's code review capabilities have greatly improved, >>> > which make it more feasible to coordinate contributions for a large >>> > project like ITK. And, there are many existing GitHub-integrated >>> > services that we can leverage. >>> > >>> > Thanks to resources from the National Library of Medicine and >>> > technological advances, it is now feasible to migrate the project's >>> > software process to GitHub. There are many infrastructural aspects >>> to >>> > the migration, and it would take multiple months to complete. Please >>> > let us know your thoughts before we embark on the journey. >>> > >>> > >>> > [1] https://github.com/InsightSoftwareConsortium >>> > _____________________________________ >>> > Powered by www.kitware.com >>> > >>> > Visit other Kitware open-source projects at >>> > http://www.kitware.com/opensource/opensource.html >>> > >>> > Kitware offers ITK Training Courses, for more information visit: >>> > http://www.kitware.com/products/protraining.php >>> > >>> > Please keep messages on-topic and check the ITK FAQ at: >>> > http://www.itk.org/Wiki/ITK_FAQ >>> > >>> > Follow this link to subscribe/unsubscribe: >>> > http://public.kitware.com/mailman/listinfo/insight-users >>> _____________________________________ >>> Powered by www.kitware.com >>> >>> Visit other Kitware open-source projects at >>> http://www.kitware.com/opensource/opensource.html >>> >>> Kitware offers ITK Training Courses, for more information visit: >>> http://www.kitware.com/products/protraining.php >>> >>> Please keep messages on-topic and check the ITK FAQ at: >>> http://www.itk.org/Wiki/ITK_FAQ >>> >>> Follow this link to subscribe/unsubscribe: >>> http://public.kitware.com/mailman/listinfo/insight-users >>> >>> >>> _____________________________________ >>> Powered by www.kitware.com >>> >>> Visit other Kitware open-source projects at >>> http://www.kitware.com/opensource/opensource.html >>> >>> Kitware offers ITK Training Courses, for more information visit: >>> http://www.kitware.com/products/protraining.php >>> >>> Please keep messages on-topic and check the ITK FAQ at: >>> http://www.itk.org/Wiki/ITK_FAQ >>> >>> Follow this link to subscribe/unsubscribe: >>> http://public.kitware.com/mailman/listinfo/insight-users -- Unpaid intern in BillsBasement at noware dot com _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From sean at rogue-research.com Mon Jul 31 19:20:03 2017 From: sean at rogue-research.com (Sean McBride) Date: Mon, 31 Jul 2017 19:20:03 -0400 Subject: [ITK] [ITK-dev] Migration to GitHub In-Reply-To: References: Message-ID: <20170731232003.1609494024@mail.rogue-research.com> On Mon, 31 Jul 2017 17:07:44 -0400, Matt McCormick said: >We are considering migration of ITK's software process to GitHub, and >we would like your feedback. My 2 cents: - I'd be happy to see a move away from gerrit. - I'd prefer a move to a Kitware-hosted GitLab, like VTK did. - GitHub is nice and all, but not itself open source. GitLab is open source. Better that the infrastructure of an open source project also be open source itself. Sean From bill.lorensen at gmail.com Mon Jul 31 19:55:06 2017 From: bill.lorensen at gmail.com (Bill Lorensen) Date: Mon, 31 Jul 2017 19:55:06 -0400 Subject: [ITK] [ITK-users] Migration to GitHub In-Reply-To: References: Message-ID: Here are comments I made 3 years ago on the VTK discussion about changing VTK's code review process. ------------- Berk, I think we need to reach out to potential developers. Especially those outside of Kitware(and their paying customers) and the long term VTK developers outside Kitware. Those communities can adapt to anything. We need to focus on is how can we can attract new developers. In the past, new processes were adopted and adapted by Kitware, their customers and hard core VTK developers with very little input from the broader community of potential developers. ITK is going through the same issues but addressing the issues not through process change. They are looking at outreach and better documentation of the current process. Matt McCormick at Kitware has been leading this effort. I think there are lots of non-process improvements possible. But I don't have a silver bullet for attracting new developers. Perhaps VTK is too old school for today's developers. Stuck with an old architecture, old graphics architecture, old and complex languages. I honestly don't know what the root causes are. If we only include the old-timers in theses discussion then we will not attract a younger set of devleopers. Bill --------------- On Mon, Jul 31, 2017 at 5:07 PM, Matt McCormick wrote: > Hi folks, > > We are considering migration of ITK's software process to GitHub, and > we would like your feedback. > > As an open-source, community-driven project, mechanisms to communicate > and interact with the community are a high priority for ITK. > Contributing should be as easy as possible. Increasingly over the past > many years, GitHub has become the de facto place to interact for open > source development. It is now a hub for: > > Microsoft > Facebook > Google > The Scientific Python Community > The 3D Slicer Community > > Our InsightSoftwareConsortium GitHub organization [1] already has 67 > people in it and 74 repositories. There are hundreds of projects that > depend on ITK on GitHub. Many ITK developers are familiar with the > development process on GitHub (i.e the pull request process) and > already have an account on this platform. There are also advantages to > linking issues and commits with other projects and repositories. Since > ITK thrives on the open-source development idea, everyone who wants to > help the project should be able to contribute, and therefore it should > be as easy as possible to start participating in the community. > > Recently, GitHub's code review capabilities have greatly improved, > which make it more feasible to coordinate contributions for a large > project like ITK. And, there are many existing GitHub-integrated > services that we can leverage. > > Thanks to resources from the National Library of Medicine and > technological advances, it is now feasible to migrate the project's > software process to GitHub. There are many infrastructural aspects to > the migration, and it would take multiple months to complete. Please > let us know your thoughts before we embark on the journey. > > > [1] https://github.com/InsightSoftwareConsortium > _____________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Kitware offers ITK Training Courses, for more information visit: > http://www.kitware.com/products/protraining.php > > Please keep messages on-topic and check the ITK FAQ at: > http://www.itk.org/Wiki/ITK_FAQ > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/insight-users -- Unpaid intern in BillsBasement at noware dot com From lasso at queensu.ca Mon Jul 31 20:14:22 2017 From: lasso at queensu.ca (Andras Lasso) Date: Tue, 1 Aug 2017 00:14:22 +0000 Subject: [ITK] [ITK-users] [ITK-dev] Migration to GitHub In-Reply-To: References: Message-ID: > I think the key factor is "community", and GitHub has the open source community. Exactly! As a project leader, I don't like really GitHub as many features are missing (that are standard on other project hosting services), you have no influence on how things are evolving, there is effectively zero support or customization (at least for free plans). However, our users and contributors prefer/demand GitHub, as they are already familiar with it, know how to submit pull request, how issues are managed, and already have account set up. About GitHub/Kitware GitLab: I heard that VTK is going to move to GitHub, too. Maybe I misunderstood, but make sure to talk to VTK folks before considering moving to GitLab. Anyway, as a very active user but only occasional contributor of VTK, I find VTK GitLab quite frustrating due to that: 1. It is slow. I heard that it's fast when accessed from inside Kitware network, but most community members are outside. 2. I need to re-learn each time I use it: I review code, submit PR or bug report once in every few months - and each time I need to spend 20-30 minutes extra, just to find out how things work. Andras -----Original Message----- From: Community [mailto:community-bounces at itk.org] On Behalf Of Matt McCormick Sent: Monday, July 31, 2017 7:00 PM To: Bill Lorensen Cc: Insight-Users ; Hans Johnson ; Insight Developers List Subject: Re: [ITK] [ITK-dev] [ITK-users] Migration to GitHub I have followed VTK's migration to GitLab, and Kitware has done an excellent job with it. That said, I still think GitHub is the better choice for ITK. Also, the technical and social situation has changed in the time since VTK moved to GitLab. I think the key factor is "community", and GitHub has the open source community. On Mon, Jul 31, 2017 at 6:42 PM, Bill Lorensen wrote: > Vtk moved to GitLab. Have you checked with the Kitware folks to see > why they didn't use gitlab? For me, either github or gitlab is great. > > On Jul 31, 2017 6:03 PM, "Johnson, Hans J" wrote: >> >> 1000 x +1 >> >> I enthusiastically support this proposal. >> >> Hans >> >> >> On 7/31/17, 4:57 PM, "Insight-users on behalf of Jim Miller" >> wrote: >> >> +1 >> >> Jim >> >> > On Jul 31, 2017, at 5:07 PM, Matt McCormick >> wrote: >> > >> > Hi folks, >> > >> > We are considering migration of ITK's software process to >> GitHub, and >> > we would like your feedback. >> > >> > As an open-source, community-driven project, mechanisms to >> communicate >> > and interact with the community are a high priority for ITK. >> > Contributing should be as easy as possible. Increasingly over >> the past >> > many years, GitHub has become the de facto place to interact >> for open >> > source development. It is now a hub for: >> > >> > Microsoft >> > Facebook >> > Google >> > The Scientific Python Community >> > The 3D Slicer Community >> > >> > Our InsightSoftwareConsortium GitHub organization [1] already has 67 >> > people in it and 74 repositories. There are hundreds of >> projects that >> > depend on ITK on GitHub. Many ITK developers are familiar with the >> > development process on GitHub (i.e the pull request process) and >> > already have an account on this platform. There are also >> advantages to >> > linking issues and commits with other projects and repositories. >> Since >> > ITK thrives on the open-source development idea, everyone who >> wants to >> > help the project should be able to contribute, and therefore it >> should >> > be as easy as possible to start participating in the community. >> > >> > Recently, GitHub's code review capabilities have greatly improved, >> > which make it more feasible to coordinate contributions for a large >> > project like ITK. And, there are many existing GitHub-integrated >> > services that we can leverage. >> > >> > Thanks to resources from the National Library of Medicine and >> > technological advances, it is now feasible to migrate the project's >> > software process to GitHub. There are many infrastructural >> aspects to >> > the migration, and it would take multiple months to complete. Please >> > let us know your thoughts before we embark on the journey. >> > >> > >> > [1] https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FInsightSoftwareConsortium&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=onq3vW0pCjrT8pDNShHXc4JkohBMBoHv1lxOD6Nkg4o%3D&reserved=0 >> > _____________________________________ >> > Powered by https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=TbmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 >> > >> > Visit other Kitware open-source projects at >> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu5P9Xb8JPOsASbPMNc%3D&reserved=0 >> > >> > Kitware offers ITK Training Courses, for more information visit: >> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=iR5J0Yx6p31iobZibGN4nJbHsd2mYmeNshJVj12Azgw%3D&reserved=0 >> > >> > Please keep messages on-topic and check the ITK FAQ at: >> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.itk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0%3D&reserved=0 >> > >> > Follow this link to subscribe/unsubscribe: >> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Finsight-users&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=3rk3ntG%2Fvv1h8UgHGKvxd8FcajlDjZqK6BHweskvql8%3D&reserved=0 >> _____________________________________ >> Powered by >> https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&da >> ta=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7C >> d61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=T >> bmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 >> >> Visit other Kitware open-source projects at >> >> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >> itware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40quee >> nsu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb28 >> 38b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu >> 5P9Xb8JPOsASbPMNc%3D&reserved=0 >> >> Kitware offers ITK Training Courses, for more information visit: >> >> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >> itware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queens >> u.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838 >> b925c%7C1%7C0%7C636371388439104668&sdata=iR5J0Yx6p31iobZibGN4nJbHsd2m >> YmeNshJVj12Azgw%3D&reserved=0 >> >> Please keep messages on-topic and check the ITK FAQ at: >> >> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.i >> tk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d04 >> 9d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C >> 636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0% >> 3D&reserved=0 >> >> Follow this link to subscribe/unsubscribe: >> >> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpubli >> c.kitware.com%2Fmailman%2Flistinfo%2Finsight-users&data=02%7C01%7Clas >> so%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d5 >> 82c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=3rk3ntG%2Fvv1h8Ug >> HGKvxd8FcajlDjZqK6BHweskvql8%3D&reserved=0 >> >> >> _____________________________________ >> Powered by >> https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&da >> ta=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7C >> d61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=T >> bmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 >> >> Visit other Kitware open-source projects at >> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >> itware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40quee >> nsu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb28 >> 38b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu >> 5P9Xb8JPOsASbPMNc%3D&reserved=0 >> >> Kitware offers ITK Training Courses, for more information visit: >> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >> itware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queens >> u.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838 >> b925c%7C1%7C0%7C636371388439104668&sdata=iR5J0Yx6p31iobZibGN4nJbHsd2m >> YmeNshJVj12Azgw%3D&reserved=0 >> >> Please keep messages on-topic and check the ITK FAQ at: >> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.i >> tk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d04 >> 9d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C >> 636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0% >> 3D&reserved=0 >> >> Follow this link to subscribe/unsubscribe: >> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpubli >> c.kitware.com%2Fmailman%2Flistinfo%2Finsight-users&data=02%7C01%7Clas >> so%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d5 >> 82c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=3rk3ntG%2Fvv1h8Ug >> HGKvxd8FcajlDjZqK6BHweskvql8%3D&reserved=0 _______________________________________________ Powered by https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=TbmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 Visit other Kitware open-source projects at https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu5P9Xb8JPOsASbPMNc%3D&reserved=0 Kitware offers ITK Training Courses, for more information visit: https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fkitware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=4W%2B%2B3MiNoGmr%2FKnI9Kmyl4BPOJ0%2BDu9Mcdgk5A%2Foi3c%3D&reserved=0 Please keep messages on-topic and check the ITK FAQ at: https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.itk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0%3D&reserved=0 Follow this link to subscribe/unsubscribe: https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Finsight-developers&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=aJgjy9V6YWhdNpqDtQSNkBEfKEW6dNcKVW3C1fT%2FH9Q%3D&reserved=0 _______________________________________________ Community mailing list Community at itk.org https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Fcommunity&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=7%2FDK5kxboSdWy9zTD2f%2FP8CqdebW%2B82BJZQXMFQfCOQ%3D&reserved=0 _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From bill.lorensen at gmail.com Mon Jul 31 20:33:45 2017 From: bill.lorensen at gmail.com (Bill Lorensen) Date: Mon, 31 Jul 2017 20:33:45 -0400 Subject: [ITK] [ITK-users] [ITK-dev] Migration to GitHub In-Reply-To: References: Message-ID: Andras, Each of our systems, VTK, ITK and Slicer use a different process. I am only comfortable with the one that I am currently using. If I change from VTK to Slicer, I need to relearn. Even from VTK to ITK I have to relearn a bit. Until we all use the same process, we will have these issues. And that I can assure you, will never happen... Bill On Mon, Jul 31, 2017 at 8:14 PM, Andras Lasso wrote: >> I think the key factor is "community", and GitHub has the open source community. > > Exactly! As a project leader, I don't like really GitHub as many features are missing (that are standard on other project hosting services), you have no influence on how things are evolving, there is effectively zero support or customization (at least for free plans). However, our users and contributors prefer/demand GitHub, as they are already familiar with it, know how to submit pull request, how issues are managed, and already have account set up. > > About GitHub/Kitware GitLab: > > I heard that VTK is going to move to GitHub, too. Maybe I misunderstood, but make sure to talk to VTK folks before considering moving to GitLab. Anyway, as a very active user but only occasional contributor of VTK, I find VTK GitLab quite frustrating due to that: > 1. It is slow. I heard that it's fast when accessed from inside Kitware network, but most community members are outside. > 2. I need to re-learn each time I use it: I review code, submit PR or bug report once in every few months - and each time I need to spend 20-30 minutes extra, just to find out how things work. > > Andras > > -----Original Message----- > From: Community [mailto:community-bounces at itk.org] On Behalf Of Matt McCormick > Sent: Monday, July 31, 2017 7:00 PM > To: Bill Lorensen > Cc: Insight-Users ; Hans Johnson ; Insight Developers List > Subject: Re: [ITK] [ITK-dev] [ITK-users] Migration to GitHub > > I have followed VTK's migration to GitLab, and Kitware has done an excellent job with it. That said, I still think GitHub is the better choice for ITK. Also, the technical and social situation has changed in the time since VTK moved to GitLab. > > I think the key factor is "community", and GitHub has the open source community. > > On Mon, Jul 31, 2017 at 6:42 PM, Bill Lorensen wrote: >> Vtk moved to GitLab. Have you checked with the Kitware folks to see >> why they didn't use gitlab? For me, either github or gitlab is great. >> >> On Jul 31, 2017 6:03 PM, "Johnson, Hans J" wrote: >>> >>> 1000 x +1 >>> >>> I enthusiastically support this proposal. >>> >>> Hans >>> >>> >>> On 7/31/17, 4:57 PM, "Insight-users on behalf of Jim Miller" >>> wrote: >>> >>> +1 >>> >>> Jim >>> >>> > On Jul 31, 2017, at 5:07 PM, Matt McCormick >>> wrote: >>> > >>> > Hi folks, >>> > >>> > We are considering migration of ITK's software process to >>> GitHub, and >>> > we would like your feedback. >>> > >>> > As an open-source, community-driven project, mechanisms to >>> communicate >>> > and interact with the community are a high priority for ITK. >>> > Contributing should be as easy as possible. Increasingly over >>> the past >>> > many years, GitHub has become the de facto place to interact >>> for open >>> > source development. It is now a hub for: >>> > >>> > Microsoft >>> > Facebook >>> > Google >>> > The Scientific Python Community >>> > The 3D Slicer Community >>> > >>> > Our InsightSoftwareConsortium GitHub organization [1] already has 67 >>> > people in it and 74 repositories. There are hundreds of >>> projects that >>> > depend on ITK on GitHub. Many ITK developers are familiar with the >>> > development process on GitHub (i.e the pull request process) and >>> > already have an account on this platform. There are also >>> advantages to >>> > linking issues and commits with other projects and repositories. >>> Since >>> > ITK thrives on the open-source development idea, everyone who >>> wants to >>> > help the project should be able to contribute, and therefore it >>> should >>> > be as easy as possible to start participating in the community. >>> > >>> > Recently, GitHub's code review capabilities have greatly improved, >>> > which make it more feasible to coordinate contributions for a large >>> > project like ITK. And, there are many existing GitHub-integrated >>> > services that we can leverage. >>> > >>> > Thanks to resources from the National Library of Medicine and >>> > technological advances, it is now feasible to migrate the project's >>> > software process to GitHub. There are many infrastructural >>> aspects to >>> > the migration, and it would take multiple months to complete. Please >>> > let us know your thoughts before we embark on the journey. >>> > >>> > >>> > [1] https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FInsightSoftwareConsortium&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=onq3vW0pCjrT8pDNShHXc4JkohBMBoHv1lxOD6Nkg4o%3D&reserved=0 >>> > _____________________________________ >>> > Powered by https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=TbmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 >>> > >>> > Visit other Kitware open-source projects at >>> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu5P9Xb8JPOsASbPMNc%3D&reserved=0 >>> > >>> > Kitware offers ITK Training Courses, for more information visit: >>> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=iR5J0Yx6p31iobZibGN4nJbHsd2mYmeNshJVj12Azgw%3D&reserved=0 >>> > >>> > Please keep messages on-topic and check the ITK FAQ at: >>> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.itk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0%3D&reserved=0 >>> > >>> > Follow this link to subscribe/unsubscribe: >>> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Finsight-users&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=3rk3ntG%2Fvv1h8UgHGKvxd8FcajlDjZqK6BHweskvql8%3D&reserved=0 >>> _____________________________________ >>> Powered by >>> https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&da >>> ta=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7C >>> d61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=T >>> bmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 >>> >>> Visit other Kitware open-source projects at >>> >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >>> itware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40quee >>> nsu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb28 >>> 38b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu >>> 5P9Xb8JPOsASbPMNc%3D&reserved=0 >>> >>> Kitware offers ITK Training Courses, for more information visit: >>> >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >>> itware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queens >>> u.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838 >>> b925c%7C1%7C0%7C636371388439104668&sdata=iR5J0Yx6p31iobZibGN4nJbHsd2m >>> YmeNshJVj12Azgw%3D&reserved=0 >>> >>> Please keep messages on-topic and check the ITK FAQ at: >>> >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.i >>> tk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d04 >>> 9d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C >>> 636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0% >>> 3D&reserved=0 >>> >>> Follow this link to subscribe/unsubscribe: >>> >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpubli >>> c.kitware.com%2Fmailman%2Flistinfo%2Finsight-users&data=02%7C01%7Clas >>> so%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d5 >>> 82c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=3rk3ntG%2Fvv1h8Ug >>> HGKvxd8FcajlDjZqK6BHweskvql8%3D&reserved=0 >>> >>> >>> _____________________________________ >>> Powered by >>> https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&da >>> ta=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7C >>> d61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=T >>> bmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 >>> >>> Visit other Kitware open-source projects at >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >>> itware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40quee >>> nsu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb28 >>> 38b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu >>> 5P9Xb8JPOsASbPMNc%3D&reserved=0 >>> >>> Kitware offers ITK Training Courses, for more information visit: >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >>> itware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queens >>> u.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838 >>> b925c%7C1%7C0%7C636371388439104668&sdata=iR5J0Yx6p31iobZibGN4nJbHsd2m >>> YmeNshJVj12Azgw%3D&reserved=0 >>> >>> Please keep messages on-topic and check the ITK FAQ at: >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.i >>> tk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d04 >>> 9d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C >>> 636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0% >>> 3D&reserved=0 >>> >>> Follow this link to subscribe/unsubscribe: >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpubli >>> c.kitware.com%2Fmailman%2Flistinfo%2Finsight-users&data=02%7C01%7Clas >>> so%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d5 >>> 82c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=3rk3ntG%2Fvv1h8Ug >>> HGKvxd8FcajlDjZqK6BHweskvql8%3D&reserved=0 > _______________________________________________ > Powered by https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=TbmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 > > Visit other Kitware open-source projects at > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu5P9Xb8JPOsASbPMNc%3D&reserved=0 > > Kitware offers ITK Training Courses, for more information visit: > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fkitware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=4W%2B%2B3MiNoGmr%2FKnI9Kmyl4BPOJ0%2BDu9Mcdgk5A%2Foi3c%3D&reserved=0 > > Please keep messages on-topic and check the ITK FAQ at: > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.itk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0%3D&reserved=0 > > Follow this link to subscribe/unsubscribe: > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Finsight-developers&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=aJgjy9V6YWhdNpqDtQSNkBEfKEW6dNcKVW3C1fT%2FH9Q%3D&reserved=0 > _______________________________________________ > Community mailing list > Community at itk.org > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Fcommunity&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=7%2FDK5kxboSdWy9zTD2f%2FP8CqdebW%2B82BJZQXMFQfCOQ%3D&reserved=0 -- Unpaid intern in BillsBasement at noware dot com _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From bill.lorensen at gmail.com Mon Jul 31 20:33:45 2017 From: bill.lorensen at gmail.com (Bill Lorensen) Date: Mon, 31 Jul 2017 20:33:45 -0400 Subject: [ITK] [ITK-dev] [ITK-users] Migration to GitHub In-Reply-To: References: Message-ID: Andras, Each of our systems, VTK, ITK and Slicer use a different process. I am only comfortable with the one that I am currently using. If I change from VTK to Slicer, I need to relearn. Even from VTK to ITK I have to relearn a bit. Until we all use the same process, we will have these issues. And that I can assure you, will never happen... Bill On Mon, Jul 31, 2017 at 8:14 PM, Andras Lasso wrote: >> I think the key factor is "community", and GitHub has the open source community. > > Exactly! As a project leader, I don't like really GitHub as many features are missing (that are standard on other project hosting services), you have no influence on how things are evolving, there is effectively zero support or customization (at least for free plans). However, our users and contributors prefer/demand GitHub, as they are already familiar with it, know how to submit pull request, how issues are managed, and already have account set up. > > About GitHub/Kitware GitLab: > > I heard that VTK is going to move to GitHub, too. Maybe I misunderstood, but make sure to talk to VTK folks before considering moving to GitLab. Anyway, as a very active user but only occasional contributor of VTK, I find VTK GitLab quite frustrating due to that: > 1. It is slow. I heard that it's fast when accessed from inside Kitware network, but most community members are outside. > 2. I need to re-learn each time I use it: I review code, submit PR or bug report once in every few months - and each time I need to spend 20-30 minutes extra, just to find out how things work. > > Andras > > -----Original Message----- > From: Community [mailto:community-bounces at itk.org] On Behalf Of Matt McCormick > Sent: Monday, July 31, 2017 7:00 PM > To: Bill Lorensen > Cc: Insight-Users ; Hans Johnson ; Insight Developers List > Subject: Re: [ITK] [ITK-dev] [ITK-users] Migration to GitHub > > I have followed VTK's migration to GitLab, and Kitware has done an excellent job with it. That said, I still think GitHub is the better choice for ITK. Also, the technical and social situation has changed in the time since VTK moved to GitLab. > > I think the key factor is "community", and GitHub has the open source community. > > On Mon, Jul 31, 2017 at 6:42 PM, Bill Lorensen wrote: >> Vtk moved to GitLab. Have you checked with the Kitware folks to see >> why they didn't use gitlab? For me, either github or gitlab is great. >> >> On Jul 31, 2017 6:03 PM, "Johnson, Hans J" wrote: >>> >>> 1000 x +1 >>> >>> I enthusiastically support this proposal. >>> >>> Hans >>> >>> >>> On 7/31/17, 4:57 PM, "Insight-users on behalf of Jim Miller" >>> wrote: >>> >>> +1 >>> >>> Jim >>> >>> > On Jul 31, 2017, at 5:07 PM, Matt McCormick >>> wrote: >>> > >>> > Hi folks, >>> > >>> > We are considering migration of ITK's software process to >>> GitHub, and >>> > we would like your feedback. >>> > >>> > As an open-source, community-driven project, mechanisms to >>> communicate >>> > and interact with the community are a high priority for ITK. >>> > Contributing should be as easy as possible. Increasingly over >>> the past >>> > many years, GitHub has become the de facto place to interact >>> for open >>> > source development. It is now a hub for: >>> > >>> > Microsoft >>> > Facebook >>> > Google >>> > The Scientific Python Community >>> > The 3D Slicer Community >>> > >>> > Our InsightSoftwareConsortium GitHub organization [1] already has 67 >>> > people in it and 74 repositories. There are hundreds of >>> projects that >>> > depend on ITK on GitHub. Many ITK developers are familiar with the >>> > development process on GitHub (i.e the pull request process) and >>> > already have an account on this platform. There are also >>> advantages to >>> > linking issues and commits with other projects and repositories. >>> Since >>> > ITK thrives on the open-source development idea, everyone who >>> wants to >>> > help the project should be able to contribute, and therefore it >>> should >>> > be as easy as possible to start participating in the community. >>> > >>> > Recently, GitHub's code review capabilities have greatly improved, >>> > which make it more feasible to coordinate contributions for a large >>> > project like ITK. And, there are many existing GitHub-integrated >>> > services that we can leverage. >>> > >>> > Thanks to resources from the National Library of Medicine and >>> > technological advances, it is now feasible to migrate the project's >>> > software process to GitHub. There are many infrastructural >>> aspects to >>> > the migration, and it would take multiple months to complete. Please >>> > let us know your thoughts before we embark on the journey. >>> > >>> > >>> > [1] https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FInsightSoftwareConsortium&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=onq3vW0pCjrT8pDNShHXc4JkohBMBoHv1lxOD6Nkg4o%3D&reserved=0 >>> > _____________________________________ >>> > Powered by https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=TbmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 >>> > >>> > Visit other Kitware open-source projects at >>> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu5P9Xb8JPOsASbPMNc%3D&reserved=0 >>> > >>> > Kitware offers ITK Training Courses, for more information visit: >>> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=iR5J0Yx6p31iobZibGN4nJbHsd2mYmeNshJVj12Azgw%3D&reserved=0 >>> > >>> > Please keep messages on-topic and check the ITK FAQ at: >>> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.itk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0%3D&reserved=0 >>> > >>> > Follow this link to subscribe/unsubscribe: >>> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Finsight-users&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=3rk3ntG%2Fvv1h8UgHGKvxd8FcajlDjZqK6BHweskvql8%3D&reserved=0 >>> _____________________________________ >>> Powered by >>> https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&da >>> ta=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7C >>> d61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=T >>> bmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 >>> >>> Visit other Kitware open-source projects at >>> >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >>> itware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40quee >>> nsu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb28 >>> 38b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu >>> 5P9Xb8JPOsASbPMNc%3D&reserved=0 >>> >>> Kitware offers ITK Training Courses, for more information visit: >>> >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >>> itware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queens >>> u.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838 >>> b925c%7C1%7C0%7C636371388439104668&sdata=iR5J0Yx6p31iobZibGN4nJbHsd2m >>> YmeNshJVj12Azgw%3D&reserved=0 >>> >>> Please keep messages on-topic and check the ITK FAQ at: >>> >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.i >>> tk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d04 >>> 9d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C >>> 636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0% >>> 3D&reserved=0 >>> >>> Follow this link to subscribe/unsubscribe: >>> >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpubli >>> c.kitware.com%2Fmailman%2Flistinfo%2Finsight-users&data=02%7C01%7Clas >>> so%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d5 >>> 82c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=3rk3ntG%2Fvv1h8Ug >>> HGKvxd8FcajlDjZqK6BHweskvql8%3D&reserved=0 >>> >>> >>> _____________________________________ >>> Powered by >>> https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&da >>> ta=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7C >>> d61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=T >>> bmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 >>> >>> Visit other Kitware open-source projects at >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >>> itware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40quee >>> nsu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb28 >>> 38b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu >>> 5P9Xb8JPOsASbPMNc%3D&reserved=0 >>> >>> Kitware offers ITK Training Courses, for more information visit: >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >>> itware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queens >>> u.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838 >>> b925c%7C1%7C0%7C636371388439104668&sdata=iR5J0Yx6p31iobZibGN4nJbHsd2m >>> YmeNshJVj12Azgw%3D&reserved=0 >>> >>> Please keep messages on-topic and check the ITK FAQ at: >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.i >>> tk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d04 >>> 9d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C >>> 636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0% >>> 3D&reserved=0 >>> >>> Follow this link to subscribe/unsubscribe: >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpubli >>> c.kitware.com%2Fmailman%2Flistinfo%2Finsight-users&data=02%7C01%7Clas >>> so%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d5 >>> 82c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=3rk3ntG%2Fvv1h8Ug >>> HGKvxd8FcajlDjZqK6BHweskvql8%3D&reserved=0 > _______________________________________________ > Powered by https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=TbmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 > > Visit other Kitware open-source projects at > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu5P9Xb8JPOsASbPMNc%3D&reserved=0 > > Kitware offers ITK Training Courses, for more information visit: > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fkitware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=4W%2B%2B3MiNoGmr%2FKnI9Kmyl4BPOJ0%2BDu9Mcdgk5A%2Foi3c%3D&reserved=0 > > Please keep messages on-topic and check the ITK FAQ at: > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.itk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0%3D&reserved=0 > > Follow this link to subscribe/unsubscribe: > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Finsight-developers&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=aJgjy9V6YWhdNpqDtQSNkBEfKEW6dNcKVW3C1fT%2FH9Q%3D&reserved=0 > _______________________________________________ > Community mailing list > Community at itk.org > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Fcommunity&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=7%2FDK5kxboSdWy9zTD2f%2FP8CqdebW%2B82BJZQXMFQfCOQ%3D&reserved=0 -- Unpaid intern in BillsBasement at noware dot com _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers From lasso at queensu.ca Mon Jul 31 20:43:22 2017 From: lasso at queensu.ca (Andras Lasso) Date: Tue, 1 Aug 2017 00:43:22 +0000 Subject: [ITK] [ITK-users] [ITK-dev] Migration to GitHub In-Reply-To: References: , Message-ID: Yes, processes are different. But it helps if at least tools are the same. Andras From: Bill Lorensen Sent: Monday, July 31, 2017 20:33 To: Andras Lasso Cc: Matt McCormick; Insight-Users; Hans Johnson; Insight Developers List Subject: Re: [ITK] [ITK-dev] [ITK-users] Migration to GitHub Andras, Each of our systems, VTK, ITK and Slicer use a different process. I am only comfortable with the one that I am currently using. If I change from VTK to Slicer, I need to relearn. Even from VTK to ITK I have to relearn a bit. Until we all use the same process, we will have these issues. And that I can assure you, will never happen... Bill On Mon, Jul 31, 2017 at 8:14 PM, Andras Lasso wrote: >> I think the key factor is "community", and GitHub has the open source community. > > Exactly! As a project leader, I don't like really GitHub as many features are missing (that are standard on other project hosting services), you have no influence on how things are evolving, there is effectively zero support or customization (at least for free plans). However, our users and contributors prefer/demand GitHub, as they are already familiar with it, know how to submit pull request, how issues are managed, and already have account set up. > > About GitHub/Kitware GitLab: > > I heard that VTK is going to move to GitHub, too. Maybe I misunderstood, but make sure to talk to VTK folks before considering moving to GitLab. Anyway, as a very active user but only occasional contributor of VTK, I find VTK GitLab quite frustrating due to that: > 1. It is slow. I heard that it's fast when accessed from inside Kitware network, but most community members are outside. > 2. I need to re-learn each time I use it: I review code, submit PR or bug report once in every few months - and each time I need to spend 20-30 minutes extra, just to find out how things work. > > Andras > > -----Original Message----- > From: Community [mailto:community-bounces at itk.org] On Behalf Of Matt McCormick > Sent: Monday, July 31, 2017 7:00 PM > To: Bill Lorensen > Cc: Insight-Users ; Hans Johnson ; Insight Developers List > Subject: Re: [ITK] [ITK-dev] [ITK-users] Migration to GitHub > > I have followed VTK's migration to GitLab, and Kitware has done an excellent job with it. That said, I still think GitHub is the better choice for ITK. Also, the technical and social situation has changed in the time since VTK moved to GitLab. > > I think the key factor is "community", and GitHub has the open source community. > > On Mon, Jul 31, 2017 at 6:42 PM, Bill Lorensen wrote: >> Vtk moved to GitLab. Have you checked with the Kitware folks to see >> why they didn't use gitlab? For me, either github or gitlab is great. >> >> On Jul 31, 2017 6:03 PM, "Johnson, Hans J" wrote: >>> >>> 1000 x +1 >>> >>> I enthusiastically support this proposal. >>> >>> Hans >>> >>> >>> On 7/31/17, 4:57 PM, "Insight-users on behalf of Jim Miller" >>> wrote: >>> >>> +1 >>> >>> Jim >>> >>> > On Jul 31, 2017, at 5:07 PM, Matt McCormick >>> wrote: >>> > >>> > Hi folks, >>> > >>> > We are considering migration of ITK's software process to >>> GitHub, and >>> > we would like your feedback. >>> > >>> > As an open-source, community-driven project, mechanisms to >>> communicate >>> > and interact with the community are a high priority for ITK. >>> > Contributing should be as easy as possible. Increasingly over >>> the past >>> > many years, GitHub has become the de facto place to interact >>> for open >>> > source development. It is now a hub for: >>> > >>> > Microsoft >>> > Facebook >>> > Google >>> > The Scientific Python Community >>> > The 3D Slicer Community >>> > >>> > Our InsightSoftwareConsortium GitHub organization [1] already has 67 >>> > people in it and 74 repositories. There are hundreds of >>> projects that >>> > depend on ITK on GitHub. Many ITK developers are familiar with the >>> > development process on GitHub (i.e the pull request process) and >>> > already have an account on this platform. There are also >>> advantages to >>> > linking issues and commits with other projects and repositories. >>> Since >>> > ITK thrives on the open-source development idea, everyone who >>> wants to >>> > help the project should be able to contribute, and therefore it >>> should >>> > be as easy as possible to start participating in the community. >>> > >>> > Recently, GitHub's code review capabilities have greatly improved, >>> > which make it more feasible to coordinate contributions for a large >>> > project like ITK. And, there are many existing GitHub-integrated >>> > services that we can leverage. >>> > >>> > Thanks to resources from the National Library of Medicine and >>> > technological advances, it is now feasible to migrate the project's >>> > software process to GitHub. There are many infrastructural >>> aspects to >>> > the migration, and it would take multiple months to complete. Please >>> > let us know your thoughts before we embark on the journey. >>> > >>> > >>> > [1] https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FInsightSoftwareConsortium&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=onq3vW0pCjrT8pDNShHXc4JkohBMBoHv1lxOD6Nkg4o%3D&reserved=0 >>> > _____________________________________ >>> > Powered by https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=TbmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 >>> > >>> > Visit other Kitware open-source projects at >>> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu5P9Xb8JPOsASbPMNc%3D&reserved=0 >>> > >>> > Kitware offers ITK Training Courses, for more information visit: >>> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=iR5J0Yx6p31iobZibGN4nJbHsd2mYmeNshJVj12Azgw%3D&reserved=0 >>> > >>> > Please keep messages on-topic and check the ITK FAQ at: >>> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.itk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0%3D&reserved=0 >>> > >>> > Follow this link to subscribe/unsubscribe: >>> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Finsight-users&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=3rk3ntG%2Fvv1h8UgHGKvxd8FcajlDjZqK6BHweskvql8%3D&reserved=0 >>> _____________________________________ >>> Powered by >>> https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&da >>> ta=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7C >>> d61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=T >>> bmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 >>> >>> Visit other Kitware open-source projects at >>> >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >>> itware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40quee >>> nsu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb28 >>> 38b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu >>> 5P9Xb8JPOsASbPMNc%3D&reserved=0 >>> >>> Kitware offers ITK Training Courses, for more information visit: >>> >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >>> itware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queens >>> u.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838 >>> b925c%7C1%7C0%7C636371388439104668&sdata=iR5J0Yx6p31iobZibGN4nJbHsd2m >>> YmeNshJVj12Azgw%3D&reserved=0 >>> >>> Please keep messages on-topic and check the ITK FAQ at: >>> >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.i >>> tk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d04 >>> 9d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C >>> 636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0% >>> 3D&reserved=0 >>> >>> Follow this link to subscribe/unsubscribe: >>> >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpubli >>> c.kitware.com%2Fmailman%2Flistinfo%2Finsight-users&data=02%7C01%7Clas >>> so%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d5 >>> 82c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=3rk3ntG%2Fvv1h8Ug >>> HGKvxd8FcajlDjZqK6BHweskvql8%3D&reserved=0 >>> >>> >>> _____________________________________ >>> Powered by >>> https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&da >>> ta=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7C >>> d61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=T >>> bmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 >>> >>> Visit other Kitware open-source projects at >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >>> itware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40quee >>> nsu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb28 >>> 38b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu >>> 5P9Xb8JPOsASbPMNc%3D&reserved=0 >>> >>> Kitware offers ITK Training Courses, for more information visit: >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >>> itware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queens >>> u.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838 >>> b925c%7C1%7C0%7C636371388439104668&sdata=iR5J0Yx6p31iobZibGN4nJbHsd2m >>> YmeNshJVj12Azgw%3D&reserved=0 >>> >>> Please keep messages on-topic and check the ITK FAQ at: >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.i >>> tk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d04 >>> 9d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C >>> 636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0% >>> 3D&reserved=0 >>> >>> Follow this link to subscribe/unsubscribe: >>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpubli >>> c.kitware.com%2Fmailman%2Flistinfo%2Finsight-users&data=02%7C01%7Clas >>> so%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d5 >>> 82c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=3rk3ntG%2Fvv1h8Ug >>> HGKvxd8FcajlDjZqK6BHweskvql8%3D&reserved=0 > _______________________________________________ > Powered by https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=TbmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 > > Visit other Kitware open-source projects at > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu5P9Xb8JPOsASbPMNc%3D&reserved=0 > > Kitware offers ITK Training Courses, for more information visit: > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fkitware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=4W%2B%2B3MiNoGmr%2FKnI9Kmyl4BPOJ0%2BDu9Mcdgk5A%2Foi3c%3D&reserved=0 > > Please keep messages on-topic and check the ITK FAQ at: > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.itk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0%3D&reserved=0 > > Follow this link to subscribe/unsubscribe: > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Finsight-developers&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=aJgjy9V6YWhdNpqDtQSNkBEfKEW6dNcKVW3C1fT%2FH9Q%3D&reserved=0 > _______________________________________________ > Community mailing list > Community at itk.org > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Fcommunity&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=7%2FDK5kxboSdWy9zTD2f%2FP8CqdebW%2B82BJZQXMFQfCOQ%3D&reserved=0 -- Unpaid intern in BillsBasement at noware dot com -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From bill.lorensen at gmail.com Mon Jul 31 20:54:10 2017 From: bill.lorensen at gmail.com (Bill Lorensen) Date: Mon, 31 Jul 2017 20:54:10 -0400 Subject: [ITK] [ITK-users] [ITK-dev] Migration to GitHub In-Reply-To: References: Message-ID: Yes, at least they all use git... On Mon, Jul 31, 2017 at 8:43 PM, Andras Lasso wrote: > Yes, processes are different. But it helps if at least tools are the same. > > > > Andras > > > > From: Bill Lorensen > Sent: Monday, July 31, 2017 20:33 > To: Andras Lasso > Cc: Matt McCormick; Insight-Users; Hans Johnson; Insight Developers List > > > Subject: Re: [ITK] [ITK-dev] [ITK-users] Migration to GitHub > > > > Andras, > > Each of our systems, VTK, ITK and Slicer use a different process. I am > only comfortable with the one that I am currently using. If I change > from VTK to Slicer, I need to relearn. Even from VTK to ITK I have to > relearn a bit. > > Until we all use the same process, we will have these issues. And that > I can assure you, will never happen... > > Bill > > On Mon, Jul 31, 2017 at 8:14 PM, Andras Lasso wrote: >>> I think the key factor is "community", and GitHub has the open source >>> community. >> >> Exactly! As a project leader, I don't like really GitHub as many features >> are missing (that are standard on other project hosting services), you have >> no influence on how things are evolving, there is effectively zero support >> or customization (at least for free plans). However, our users and >> contributors prefer/demand GitHub, as they are already familiar with it, >> know how to submit pull request, how issues are managed, and already have >> account set up. >> >> About GitHub/Kitware GitLab: >> >> I heard that VTK is going to move to GitHub, too. Maybe I misunderstood, >> but make sure to talk to VTK folks before considering moving to GitLab. >> Anyway, as a very active user but only occasional contributor of VTK, I find >> VTK GitLab quite frustrating due to that: >> 1. It is slow. I heard that it's fast when accessed from inside Kitware >> network, but most community members are outside. >> 2. I need to re-learn each time I use it: I review code, submit PR or bug >> report once in every few months - and each time I need to spend 20-30 >> minutes extra, just to find out how things work. >> >> Andras >> >> -----Original Message----- >> From: Community [mailto:community-bounces at itk.org] On Behalf Of Matt >> McCormick >> Sent: Monday, July 31, 2017 7:00 PM >> To: Bill Lorensen >> Cc: Insight-Users ; Hans Johnson >> ; Insight Developers List >> >> Subject: Re: [ITK] [ITK-dev] [ITK-users] Migration to GitHub >> >> I have followed VTK's migration to GitLab, and Kitware has done an >> excellent job with it. That said, I still think GitHub is the better choice >> for ITK. Also, the technical and social situation has changed in the time >> since VTK moved to GitLab. >> >> I think the key factor is "community", and GitHub has the open source >> community. >> >> On Mon, Jul 31, 2017 at 6:42 PM, Bill Lorensen >> wrote: >>> Vtk moved to GitLab. Have you checked with the Kitware folks to see >>> why they didn't use gitlab? For me, either github or gitlab is great. >>> >>> On Jul 31, 2017 6:03 PM, "Johnson, Hans J" >>> wrote: >>>> >>>> 1000 x +1 >>>> >>>> I enthusiastically support this proposal. >>>> >>>> Hans >>>> >>>> >>>> On 7/31/17, 4:57 PM, "Insight-users on behalf of Jim Miller" >>>> wrote: >>>> >>>> +1 >>>> >>>> Jim >>>> >>>> > On Jul 31, 2017, at 5:07 PM, Matt McCormick >>>> wrote: >>>> > >>>> > Hi folks, >>>> > >>>> > We are considering migration of ITK's software process to >>>> GitHub, and >>>> > we would like your feedback. >>>> > >>>> > As an open-source, community-driven project, mechanisms to >>>> communicate >>>> > and interact with the community are a high priority for ITK. >>>> > Contributing should be as easy as possible. Increasingly over >>>> the past >>>> > many years, GitHub has become the de facto place to interact >>>> for open >>>> > source development. It is now a hub for: >>>> > >>>> > Microsoft >>>> > Facebook >>>> > Google >>>> > The Scientific Python Community >>>> > The 3D Slicer Community >>>> > >>>> > Our InsightSoftwareConsortium GitHub organization [1] already has >>>> 67 >>>> > people in it and 74 repositories. There are hundreds of >>>> projects that >>>> > depend on ITK on GitHub. Many ITK developers are familiar with the >>>> > development process on GitHub (i.e the pull request process) and >>>> > already have an account on this platform. There are also >>>> advantages to >>>> > linking issues and commits with other projects and repositories. >>>> Since >>>> > ITK thrives on the open-source development idea, everyone who >>>> wants to >>>> > help the project should be able to contribute, and therefore it >>>> should >>>> > be as easy as possible to start participating in the community. >>>> > >>>> > Recently, GitHub's code review capabilities have greatly improved, >>>> > which make it more feasible to coordinate contributions for a >>>> large >>>> > project like ITK. And, there are many existing GitHub-integrated >>>> > services that we can leverage. >>>> > >>>> > Thanks to resources from the National Library of Medicine and >>>> > technological advances, it is now feasible to migrate the >>>> project's >>>> > software process to GitHub. There are many infrastructural >>>> aspects to >>>> > the migration, and it would take multiple months to complete. >>>> Please >>>> > let us know your thoughts before we embark on the journey. >>>> > >>>> > >>>> > [1] >>>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FInsightSoftwareConsortium&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=onq3vW0pCjrT8pDNShHXc4JkohBMBoHv1lxOD6Nkg4o%3D&reserved=0 >>>> > _____________________________________ >>>> > Powered by >>>> https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=TbmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 >>>> > >>>> > Visit other Kitware open-source projects at >>>> > >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu5P9Xb8JPOsASbPMNc%3D&reserved=0 >>>> > >>>> > Kitware offers ITK Training Courses, for more information visit: >>>> > >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=iR5J0Yx6p31iobZibGN4nJbHsd2mYmeNshJVj12Azgw%3D&reserved=0 >>>> > >>>> > Please keep messages on-topic and check the ITK FAQ at: >>>> > >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.itk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0%3D&reserved=0 >>>> > >>>> > Follow this link to subscribe/unsubscribe: >>>> > >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Finsight-users&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=3rk3ntG%2Fvv1h8UgHGKvxd8FcajlDjZqK6BHweskvql8%3D&reserved=0 >>>> _____________________________________ >>>> Powered by >>>> https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&da >>>> ta=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7C >>>> d61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=T >>>> bmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 >>>> >>>> Visit other Kitware open-source projects at >>>> >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >>>> itware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40quee >>>> nsu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb28 >>>> 38b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu >>>> 5P9Xb8JPOsASbPMNc%3D&reserved=0 >>>> >>>> Kitware offers ITK Training Courses, for more information visit: >>>> >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >>>> itware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queens >>>> u.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838 >>>> b925c%7C1%7C0%7C636371388439104668&sdata=iR5J0Yx6p31iobZibGN4nJbHsd2m >>>> YmeNshJVj12Azgw%3D&reserved=0 >>>> >>>> Please keep messages on-topic and check the ITK FAQ at: >>>> >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.i >>>> tk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d04 >>>> 9d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C >>>> 636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0% >>>> 3D&reserved=0 >>>> >>>> Follow this link to subscribe/unsubscribe: >>>> >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpubli >>>> c.kitware.com%2Fmailman%2Flistinfo%2Finsight-users&data=02%7C01%7Clas >>>> so%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d5 >>>> 82c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=3rk3ntG%2Fvv1h8Ug >>>> HGKvxd8FcajlDjZqK6BHweskvql8%3D&reserved=0 >>>> >>>> >>>> _____________________________________ >>>> Powered by >>>> https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&da >>>> ta=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7C >>>> d61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=T >>>> bmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 >>>> >>>> Visit other Kitware open-source projects at >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >>>> itware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40quee >>>> nsu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb28 >>>> 38b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu >>>> 5P9Xb8JPOsASbPMNc%3D&reserved=0 >>>> >>>> Kitware offers ITK Training Courses, for more information visit: >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >>>> itware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queens >>>> u.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838 >>>> b925c%7C1%7C0%7C636371388439104668&sdata=iR5J0Yx6p31iobZibGN4nJbHsd2m >>>> YmeNshJVj12Azgw%3D&reserved=0 >>>> >>>> Please keep messages on-topic and check the ITK FAQ at: >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.i >>>> tk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d04 >>>> 9d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C >>>> 636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0% >>>> 3D&reserved=0 >>>> >>>> Follow this link to subscribe/unsubscribe: >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpubli >>>> c.kitware.com%2Fmailman%2Flistinfo%2Finsight-users&data=02%7C01%7Clas >>>> so%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d5 >>>> 82c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=3rk3ntG%2Fvv1h8Ug >>>> HGKvxd8FcajlDjZqK6BHweskvql8%3D&reserved=0 >> _______________________________________________ >> Powered by >> https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=TbmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 >> >> Visit other Kitware open-source projects at >> >> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu5P9Xb8JPOsASbPMNc%3D&reserved=0 >> >> Kitware offers ITK Training Courses, for more information visit: >> >> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fkitware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=4W%2B%2B3MiNoGmr%2FKnI9Kmyl4BPOJ0%2BDu9Mcdgk5A%2Foi3c%3D&reserved=0 >> >> Please keep messages on-topic and check the ITK FAQ at: >> >> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.itk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0%3D&reserved=0 >> >> Follow this link to subscribe/unsubscribe: >> >> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Finsight-developers&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=aJgjy9V6YWhdNpqDtQSNkBEfKEW6dNcKVW3C1fT%2FH9Q%3D&reserved=0 >> _______________________________________________ >> Community mailing list >> Community at itk.org >> >> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Fcommunity&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=7%2FDK5kxboSdWy9zTD2f%2FP8CqdebW%2B82BJZQXMFQfCOQ%3D&reserved=0 > > > > -- > Unpaid intern in BillsBasement at noware dot com -- Unpaid intern in BillsBasement at noware dot com _____________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://www.kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-users From bill.lorensen at gmail.com Mon Jul 31 20:54:10 2017 From: bill.lorensen at gmail.com (Bill Lorensen) Date: Mon, 31 Jul 2017 20:54:10 -0400 Subject: [ITK] [ITK-dev] [ITK-users] Migration to GitHub In-Reply-To: References: Message-ID: Yes, at least they all use git... On Mon, Jul 31, 2017 at 8:43 PM, Andras Lasso wrote: > Yes, processes are different. But it helps if at least tools are the same. > > > > Andras > > > > From: Bill Lorensen > Sent: Monday, July 31, 2017 20:33 > To: Andras Lasso > Cc: Matt McCormick; Insight-Users; Hans Johnson; Insight Developers List > > > Subject: Re: [ITK] [ITK-dev] [ITK-users] Migration to GitHub > > > > Andras, > > Each of our systems, VTK, ITK and Slicer use a different process. I am > only comfortable with the one that I am currently using. If I change > from VTK to Slicer, I need to relearn. Even from VTK to ITK I have to > relearn a bit. > > Until we all use the same process, we will have these issues. And that > I can assure you, will never happen... > > Bill > > On Mon, Jul 31, 2017 at 8:14 PM, Andras Lasso wrote: >>> I think the key factor is "community", and GitHub has the open source >>> community. >> >> Exactly! As a project leader, I don't like really GitHub as many features >> are missing (that are standard on other project hosting services), you have >> no influence on how things are evolving, there is effectively zero support >> or customization (at least for free plans). However, our users and >> contributors prefer/demand GitHub, as they are already familiar with it, >> know how to submit pull request, how issues are managed, and already have >> account set up. >> >> About GitHub/Kitware GitLab: >> >> I heard that VTK is going to move to GitHub, too. Maybe I misunderstood, >> but make sure to talk to VTK folks before considering moving to GitLab. >> Anyway, as a very active user but only occasional contributor of VTK, I find >> VTK GitLab quite frustrating due to that: >> 1. It is slow. I heard that it's fast when accessed from inside Kitware >> network, but most community members are outside. >> 2. I need to re-learn each time I use it: I review code, submit PR or bug >> report once in every few months - and each time I need to spend 20-30 >> minutes extra, just to find out how things work. >> >> Andras >> >> -----Original Message----- >> From: Community [mailto:community-bounces at itk.org] On Behalf Of Matt >> McCormick >> Sent: Monday, July 31, 2017 7:00 PM >> To: Bill Lorensen >> Cc: Insight-Users ; Hans Johnson >> ; Insight Developers List >> >> Subject: Re: [ITK] [ITK-dev] [ITK-users] Migration to GitHub >> >> I have followed VTK's migration to GitLab, and Kitware has done an >> excellent job with it. That said, I still think GitHub is the better choice >> for ITK. Also, the technical and social situation has changed in the time >> since VTK moved to GitLab. >> >> I think the key factor is "community", and GitHub has the open source >> community. >> >> On Mon, Jul 31, 2017 at 6:42 PM, Bill Lorensen >> wrote: >>> Vtk moved to GitLab. Have you checked with the Kitware folks to see >>> why they didn't use gitlab? For me, either github or gitlab is great. >>> >>> On Jul 31, 2017 6:03 PM, "Johnson, Hans J" >>> wrote: >>>> >>>> 1000 x +1 >>>> >>>> I enthusiastically support this proposal. >>>> >>>> Hans >>>> >>>> >>>> On 7/31/17, 4:57 PM, "Insight-users on behalf of Jim Miller" >>>> wrote: >>>> >>>> +1 >>>> >>>> Jim >>>> >>>> > On Jul 31, 2017, at 5:07 PM, Matt McCormick >>>> wrote: >>>> > >>>> > Hi folks, >>>> > >>>> > We are considering migration of ITK's software process to >>>> GitHub, and >>>> > we would like your feedback. >>>> > >>>> > As an open-source, community-driven project, mechanisms to >>>> communicate >>>> > and interact with the community are a high priority for ITK. >>>> > Contributing should be as easy as possible. Increasingly over >>>> the past >>>> > many years, GitHub has become the de facto place to interact >>>> for open >>>> > source development. It is now a hub for: >>>> > >>>> > Microsoft >>>> > Facebook >>>> > Google >>>> > The Scientific Python Community >>>> > The 3D Slicer Community >>>> > >>>> > Our InsightSoftwareConsortium GitHub organization [1] already has >>>> 67 >>>> > people in it and 74 repositories. There are hundreds of >>>> projects that >>>> > depend on ITK on GitHub. Many ITK developers are familiar with the >>>> > development process on GitHub (i.e the pull request process) and >>>> > already have an account on this platform. There are also >>>> advantages to >>>> > linking issues and commits with other projects and repositories. >>>> Since >>>> > ITK thrives on the open-source development idea, everyone who >>>> wants to >>>> > help the project should be able to contribute, and therefore it >>>> should >>>> > be as easy as possible to start participating in the community. >>>> > >>>> > Recently, GitHub's code review capabilities have greatly improved, >>>> > which make it more feasible to coordinate contributions for a >>>> large >>>> > project like ITK. And, there are many existing GitHub-integrated >>>> > services that we can leverage. >>>> > >>>> > Thanks to resources from the National Library of Medicine and >>>> > technological advances, it is now feasible to migrate the >>>> project's >>>> > software process to GitHub. There are many infrastructural >>>> aspects to >>>> > the migration, and it would take multiple months to complete. >>>> Please >>>> > let us know your thoughts before we embark on the journey. >>>> > >>>> > >>>> > [1] >>>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FInsightSoftwareConsortium&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=onq3vW0pCjrT8pDNShHXc4JkohBMBoHv1lxOD6Nkg4o%3D&reserved=0 >>>> > _____________________________________ >>>> > Powered by >>>> https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=TbmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 >>>> > >>>> > Visit other Kitware open-source projects at >>>> > >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu5P9Xb8JPOsASbPMNc%3D&reserved=0 >>>> > >>>> > Kitware offers ITK Training Courses, for more information visit: >>>> > >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=iR5J0Yx6p31iobZibGN4nJbHsd2mYmeNshJVj12Azgw%3D&reserved=0 >>>> > >>>> > Please keep messages on-topic and check the ITK FAQ at: >>>> > >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.itk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0%3D&reserved=0 >>>> > >>>> > Follow this link to subscribe/unsubscribe: >>>> > >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Finsight-users&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=3rk3ntG%2Fvv1h8UgHGKvxd8FcajlDjZqK6BHweskvql8%3D&reserved=0 >>>> _____________________________________ >>>> Powered by >>>> https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&da >>>> ta=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7C >>>> d61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=T >>>> bmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 >>>> >>>> Visit other Kitware open-source projects at >>>> >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >>>> itware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40quee >>>> nsu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb28 >>>> 38b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu >>>> 5P9Xb8JPOsASbPMNc%3D&reserved=0 >>>> >>>> Kitware offers ITK Training Courses, for more information visit: >>>> >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >>>> itware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queens >>>> u.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838 >>>> b925c%7C1%7C0%7C636371388439104668&sdata=iR5J0Yx6p31iobZibGN4nJbHsd2m >>>> YmeNshJVj12Azgw%3D&reserved=0 >>>> >>>> Please keep messages on-topic and check the ITK FAQ at: >>>> >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.i >>>> tk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d04 >>>> 9d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C >>>> 636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0% >>>> 3D&reserved=0 >>>> >>>> Follow this link to subscribe/unsubscribe: >>>> >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpubli >>>> c.kitware.com%2Fmailman%2Flistinfo%2Finsight-users&data=02%7C01%7Clas >>>> so%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d5 >>>> 82c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=3rk3ntG%2Fvv1h8Ug >>>> HGKvxd8FcajlDjZqK6BHweskvql8%3D&reserved=0 >>>> >>>> >>>> _____________________________________ >>>> Powered by >>>> https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&da >>>> ta=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7C >>>> d61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=T >>>> bmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 >>>> >>>> Visit other Kitware open-source projects at >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >>>> itware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40quee >>>> nsu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb28 >>>> 38b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu >>>> 5P9Xb8JPOsASbPMNc%3D&reserved=0 >>>> >>>> Kitware offers ITK Training Courses, for more information visit: >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.k >>>> itware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queens >>>> u.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838 >>>> b925c%7C1%7C0%7C636371388439104668&sdata=iR5J0Yx6p31iobZibGN4nJbHsd2m >>>> YmeNshJVj12Azgw%3D&reserved=0 >>>> >>>> Please keep messages on-topic and check the ITK FAQ at: >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.i >>>> tk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d04 >>>> 9d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C >>>> 636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0% >>>> 3D&reserved=0 >>>> >>>> Follow this link to subscribe/unsubscribe: >>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpubli >>>> c.kitware.com%2Fmailman%2Flistinfo%2Finsight-users&data=02%7C01%7Clas >>>> so%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d5 >>>> 82c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=3rk3ntG%2Fvv1h8Ug >>>> HGKvxd8FcajlDjZqK6BHweskvql8%3D&reserved=0 >> _______________________________________________ >> Powered by >> https://na01.safelinks.protection.outlook.com/?url=www.kitware.com&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=TbmgQahvMJx3Czk56R8%2Bg3WKDWopBJkIpgnqkxx3xj4%3D&reserved=0 >> >> Visit other Kitware open-source projects at >> >> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kitware.com%2Fopensource%2Fopensource.html&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=BQ97jxO1o0jxL0Nk0n1styLRKu5P9Xb8JPOsASbPMNc%3D&reserved=0 >> >> Kitware offers ITK Training Courses, for more information visit: >> >> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fkitware.com%2Fproducts%2Fprotraining.php&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=4W%2B%2B3MiNoGmr%2FKnI9Kmyl4BPOJ0%2BDu9Mcdgk5A%2Foi3c%3D&reserved=0 >> >> Please keep messages on-topic and check the ITK FAQ at: >> >> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.itk.org%2FWiki%2FITK_FAQ&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=lnYum27haYjI7jbzMagLEL0eg13MhwdARYTPZivjDe0%3D&reserved=0 >> >> Follow this link to subscribe/unsubscribe: >> >> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Finsight-developers&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=aJgjy9V6YWhdNpqDtQSNkBEfKEW6dNcKVW3C1fT%2FH9Q%3D&reserved=0 >> _______________________________________________ >> Community mailing list >> Community at itk.org >> >> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fpublic.kitware.com%2Fmailman%2Flistinfo%2Fcommunity&data=02%7C01%7Classo%40queensu.ca%7C96f312d049d7448d6db208d4d867f888%7Cd61ecb3b38b142d582c4efb2838b925c%7C1%7C0%7C636371388439104668&sdata=7%2FDK5kxboSdWy9zTD2f%2FP8CqdebW%2B82BJZQXMFQfCOQ%3D&reserved=0 > > > > -- > Unpaid intern in BillsBasement at noware dot com -- Unpaid intern in BillsBasement at noware dot com _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers