point rendering problem in vtkimageviewer2

I am trying to render a point on vtkimageviewer2. I am using vtkpointpicker for selecting the point but sometimes the point is not visible on the slice I select it on. Here is my code:

Picker initialization:

worldPicker = vtkPointPicker()
worldPicker.SetTolerance(0.001)
interactor.SetPicker(worldPicker)

Picking Point:

interactor.GetPicker().Pick(interactor.GetEventPosition()[0],
                                        interactor.GetEventPosition()[1],
                                        0,
                                        interactor.GetRenderWindow().GetRenderers().GetFirstRenderer())
picked = interactor.GetPicker().GetPickPosition()

Drawing the point:

    points = vtkPoints()
    points.InsertNextPoint(picked[0] , picked[1] , picked[2] )

    pointsData = vtk.vtkPolyData()
    pointsData.SetPoints(points)

    vertexGlyphFilter = vtk.vtkVertexGlyphFilter()
    vertexGlyphFilter.AddInputData(pointsData)
    vertexGlyphFilter.Update()

    pointsMapper = vtk.vtkPolyDataMapper()
    pointsMapper.SetInputConnection(vertexGlyphFilter.GetOutputPort())

    pointsActor.SetMapper(pointsMapper)
    pointsActor.GetProperty().SetPointSize(6)
    if color == Constants.Colors.RED:
        pointsActor.GetProperty().SetColor(1.0, 0.0, 0.0)
    elif color == Constants.Colors.GREEN:
        pointsActor.GetProperty().SetColor(0.0, 1.0, 0.0)
    elif color == Constants.Colors.BLUE:
        pointsActor.GetProperty().SetColor(0.0, 0.0, 1.0)
    elif color == Constants.Colors.YELLOW:
        pointsActor.GetProperty().SetColor(1.0, 1.0, 0.0)
    elif color == Constants.Colors.MAGENTA:
        pointsActor.GetProperty().SetColor(1.0, 0.0, 1.0)
    pointsActor.GetProperty().SetOpacity(0.8)
    pointsActor.GetProperty().SetInterpolationToPhong()
    # self.all_points_data = pointsData
    viewer.GetRenderer().AddActor(pointsActor)
    # renderer.GetRenderWindow().PointSmoothingOn()
    viewer.UpdateDisplayExtent()
    viewer.Render()