While Per Vognsen's comment works well for labeled trees, your question uses the word "unique" (which should probably be "distinct") to describe the shape of the tree. This makes me think you mean "How many isomorphism classes of unlabeled binary trees are there?"
To compute this exactly, you will probably want to use Brendan McKay's "Isomorph-free exhaustive generation" which he uses in his program
geng to list each isomorphism class of simple graphs on a given number of vertices and edges, and do it quickly.
To summarize his process, he uses a depth-first search on graphs, where each deepening step adds a vertex. To make sure no isomorphism class is repeated (which would happen a lot if this was done naïvely) the vertex-added graph decides if this was the "canonical" subgraph to use in the search. The algorithm essentially picks a vertex in the graph to be deleted using a canonical labeling of the graph and tests if this was the vertex that was added. A canonical labeling can be found by McKay's
In your binary tree example, you would add a leaf somewhere in the tree. You can fix the root, but the other vertices may permute based on the automorphism group. Hence, you only need to test adding a leaf to each orbit of vertices that has fewer than two children. After adding the leaf, compute the canonical labeling of the tree and find the lexicographically-least leaf. If this leaf is in the same orbit as the leaf you added, then the search can deepen; otherwise try a new leaf. When $n$ vertices are reached, increment your counter.