Python Forum
Hough transfrom with itk
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Hough transfrom with itk
#1
Hello everybody, I need your help ! Smile

I've been searching for 2 days how can I use the tranform of Hough (circles on 2D image). For this i need to use itk because my image is in the format .mha.

I have already tried something like :

HoughFilter = itk.HoughTransform2DCirclesImageFilter.New()
HoughFilter.SetInput(MyLastImage)
HoughFilter.SetNumberOfCircles(2)
HoughFilter.Update()
Im1 = HoughFilter.GetOutput()
Im1.show()
But nothing works, I am searching on the internet but i don't find anything...
May someone have an idea for this problem ? Huh

Hakoo'
Reply
#2
Could you please post your complete code and a link for your MyLastImage?

Maybe this simple example can help you: plot_circular_elliptical_hough_transform
Reply
#3
This is all the previous code :

 import numpy
from PIL import Image
import itk
from sys import argv

#First, read the image with itk
Reader = itk.ImageFileReader.New(FileName="C:/Users/Utilisateur/Desktop/DataPourQuentin/Aimer Omar_SSFP.mha")

#Get the image as an itkImage object
Reader.Update()
MyImage = Reader.GetOutput()

#Transform the itkImage into a simple Numpy array
MyImageNumpy = itk.GetArrayFromImage(MyImage)

#Now look at the first slice of the image
MyImagePIL = Image.fromarray(MyImageNumpy[0,:,:])
MyImagePIL.show()

#Create the ImageMIP
m = len(MyImageNumpy[0,0,:])
n = len(MyImageNumpy[0,:,0])
MyImageMIP = numpy.zeros((n,m))


for i in range (n):
    for j in range (m):
        MyImageMIP[i,j] = max(MyImageNumpy[:,i,j])

MyLastImage = Image.fromarray(MyImageMIP)
The aim is to take a 3D image and to put it into a 2D image, and then to make a 2D circular transform of hough

And this is the following code :

PixelType = itk.UC
AccumulatorPixelType = itk.F
Dimension = 2
ImageType = itk.Image[PixelType,Dimension]

AccumulatorImageType = itk.Image[AccumulatorPixelType,Dimension]


reader2 = itk.ImageFileReader(ImageType)
reader2 = readerType.New()
reader2.SetFileName( argv[1] )
reader2.Update()
reader2.GetOutput()

HoughFilter = itk.HoughTransform2DCirclesImageFilter.New()
HoughFilter.SetInput(MyLastImage)
HoughFilter.SetNumberOfCircles(2)
HoughFilter.SetMinimumRadius(4)
HoughFilter.SetMaximumRadius(5)
HoughFilter.Update()
Im1 = HoughFilter.GetOutput()
But after my accumulator image, there is an error
Reply


Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020