He has not left his house in the outskirts of the capital Kampala since voting in the presidential election 11 days ago, in which he was declared runner-up to President Yoweri Museveni.
Monday’s ruling by the High Court in Kampala comes after a petition by Bobi Wine’s lawyers.
The state argued it needed to prevent him organising protests.
But the High Court has now ruled that Bobi Wine’s detention was unlawful,
Dozens of people were killed during campaigning – many were shot by security forces.
Bobi Wine alleges that the election, in which he won 35% of the vote as National Unity Platform leader, was rigged.
Uganda’s Electoral Commission said the vote was peaceful, but the EU, United Nations and several rights groups have raised concerns. Aside from an African Union mission, no major international group monitored the vote.
Bobi Wine, a popular singer, 38, whose real name is Robert Kyagulanyi, said he was “worried about my life and the life of my wife”.