Definitely Anthony Hopkins as Hannibal.
With all due respect to Sean Connery (best Bond etc.) thank goodness he turned down the role of Hannibal Lecter. From Wikipedia:
For the role of Dr. Hannibal Lecter, [director] Demme originally approached Sean Connery. After the actor turned it down, Anthony Hopkins was then offered the part based on his performance in The Elephant Man (1980). Other actors considered for the role included Al Pacino, Robert De Niro, Dustin Hoffman, Derek Jacobi and Daniel Day-Lewis.
Definitely missing