<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
		<id>http://www.lcad.inf.ufes.br/wiki/index.php?action=history&amp;feed=atom&amp;title=Vis%C3%A3o_Est%C3%A9reo_%28Bumblebee2%29</id>
		<title>Visão Estéreo (Bumblebee2) - Histórico de revisão</title>
		<link rel="self" type="application/atom+xml" href="http://www.lcad.inf.ufes.br/wiki/index.php?action=history&amp;feed=atom&amp;title=Vis%C3%A3o_Est%C3%A9reo_%28Bumblebee2%29"/>
		<link rel="alternate" type="text/html" href="http://www.lcad.inf.ufes.br/wiki/index.php?title=Vis%C3%A3o_Est%C3%A9reo_(Bumblebee2)&amp;action=history"/>
		<updated>2026-05-19T07:32:51Z</updated>
		<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.lcad.inf.ufes.br/wiki/index.php?title=Vis%C3%A3o_Est%C3%A9reo_(Bumblebee2)&amp;diff=80202&amp;oldid=prev</id>
		<title>Administrador em 20h31min de 14 de setembro de 2012</title>
		<link rel="alternate" type="text/html" href="http://www.lcad.inf.ufes.br/wiki/index.php?title=Vis%C3%A3o_Est%C3%A9reo_(Bumblebee2)&amp;diff=80202&amp;oldid=prev"/>
				<updated>2012-09-14T20:31:01Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;pt-BR&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Edição anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Edição das 20h31min de 14 de setembro de 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Linha 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linha 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[category:Carmen]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Documentação de Visão Estéreo do Robot Tropidurus.'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Documentação de Visão Estéreo do Robot Tropidurus.'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Administrador</name></author>	</entry>

	<entry>
		<id>http://www.lcad.inf.ufes.br/wiki/index.php?title=Vis%C3%A3o_Est%C3%A9reo_(Bumblebee2)&amp;diff=6322&amp;oldid=prev</id>
		<title>Ljose: New page: '''Documentação de Visão Estéreo do Robot Tropidurus.'''  Lauro J. Lyrio Júnior.  '''Instalação do Software da Bumbebee2'''  Foi provido com a Câmera Bumblebee2 um cd com o softwar...</title>
		<link rel="alternate" type="text/html" href="http://www.lcad.inf.ufes.br/wiki/index.php?title=Vis%C3%A3o_Est%C3%A9reo_(Bumblebee2)&amp;diff=6322&amp;oldid=prev"/>
				<updated>2010-03-29T10:33:09Z</updated>
		
		<summary type="html">&lt;p&gt;New page: &amp;#039;&amp;#039;&amp;#039;Documentação de Visão Estéreo do Robot Tropidurus.&amp;#039;&amp;#039;&amp;#039;  Lauro J. Lyrio Júnior.  &amp;#039;&amp;#039;&amp;#039;Instalação do Software da Bumbebee2&amp;#039;&amp;#039;&amp;#039;  Foi provido com a Câmera Bumblebee2 um cd com o softwar...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Documentação de Visão Estéreo do Robot Tropidurus.'''&lt;br /&gt;
&lt;br /&gt;
Lauro J. Lyrio Júnior.&lt;br /&gt;
&lt;br /&gt;
'''Instalação do Software da Bumbebee2'''&lt;br /&gt;
&lt;br /&gt;
Foi provido com a Câmera Bumblebee2 um cd com o software para aquisição de imagens e processamento estéreo, no entanto este software se encontra desatualizado e com vários problemas de compatibilidade. Portanto foi necessário a atualização dos mesmos perante a Point Grey, eles se encontram em http://www.lcad.inf.ufes.br/svn/roboticaprobabilistica  sob o diretório /Visão Estéreo/ ou podem ser baixados do site da Point Grey (www.ptgrey.com).&lt;br /&gt;
A instalação do software é bem simplista, sendo que pode ser feita totalmente através dos assistentes de instalação. Somente se atente para o fato de que ele instala as SDK’s em C:/Arquivos de Programas/ e as referências dos exemplos estão para Program Files. Depois de feitas essas correções nos exemplos tudo deverá estar funcionando perfeitamente.&lt;br /&gt;
Para conferir se tudo ocorreu como esperado, ligue a câmera na fonte com voltagem de 12v e encaixa a conexão FireWire no PC. Inicie o software triclopsDemo.exe que se encontra em C:\Program Files\Point Grey Research\Triclops Stereo Vision SDK\bin\&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Aquisição das Imagens'''&lt;br /&gt;
&lt;br /&gt;
Em nosso projeto é necessário a utilização de duas imagens estéreo retificadas, providas pela câmera Bumblebee2 da Point Grey (veja www.ptgrey.com). Para a obtenção de tais imagens utilizamos a própria API da câmera, que pode ser encontrada na documentação da SDK Triclops (veja Triclops Stereo Vision SDK Manual.pdf), também provido pela Point Grey. A SDK Triclops provê um ferramental amplo para soluções em Visão Estéreo, como retificação de imagens, mapa de disparidades, mapa de profundidade e projeção de nuvem de pontos.&lt;br /&gt;
Utilizamos a SDK FlyCapture, para capturar o par de imagens da Bumblebee2, e realizamos a retificação das imagens utilizamos a SDK Triclops, o código foi implementado em C++ e posteriormente portado para C# utilizando-se da técnica de PInvoke (veja http://msdn.microsoft.com/en-us/magazine/cc164123.aspx) para utilizar as funções da câmera no código administrado.&lt;br /&gt;
Foram implementadas 5 funções principais que foram expostas ao usuário por meio de uma DLL, para que o mesmo conseguisse utilizá-las em C# através de PInvoke. (veja http://scriptbrasil.com.br/forum/index.php?showtopic=100232 para saber como criar uma DLL). &lt;br /&gt;
&lt;br /&gt;
O código de exemplo para captura e retificação das imagens pode ser encontrado em http://www.lcad.inf.ufes.br/svn/roboticaprobabilistica  sob o diretório /Visão Estéreo/BumblebeeLibraryC++.&lt;br /&gt;
&lt;br /&gt;
Vale ressaltar que a camera Bumblebee2 faz a captura das 2 imagens ao mesmo tempo e retorna para a API um array com as duas imagens (veja TriclopsBuildPackedTriclopsInput em Triclops Stereo Vision SDK Manual.pdf para maiores detalhes), sendo assim se faz necessário o uso de um deslocamento para que seja feita a aquisiçãoda imagem correta. O qual é feito pela parâmetro which_camera da função GetImageDLL(unsigned int which_camera) . Veja o esquema abaixo:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imagem:002.JPG]]&lt;br /&gt;
&lt;br /&gt;
Deslocamento necessário para separar uma imagem da outra.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Visão Estéreo com OpenCV'''&lt;br /&gt;
&lt;br /&gt;
	Para computação do mapa de disparidades e de profundidade, foi utilizada a biblioteca OpenCV, para ser mais exato um wrapper dela para .NET a EmguCV. O processo, pode ser observado em http://www.lcad.inf.ufes.br/svn/roboticaprobabilistica  sob o diretório /Visão Estéreo/BumblebeeLibrary (Mais informações em: http://opencv.willowgarage.com/documentation/camera_calibration_and_3d_reconstruction.html ).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Utilizando o Código Final'''&lt;br /&gt;
&lt;br /&gt;
O código se encontra em http://www.lcad.inf.ufes.br/svn/roboticaprobabilistica  sob o diretório /Visão Estéreo/BumblebeeLibrary.&lt;br /&gt;
&lt;br /&gt;
Para fins de utilização, o código necessário está implementado em C#, onde são expostas as mesmas funções implementadas na DLL, porém com algumas modificações para adaptá-las ao código administrado:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[DllImport(&amp;quot;BumblebeeCamDLL&amp;quot;)]&lt;br /&gt;
public extern static bool InitBumblebeeCameraDLL(int image_width, int image_height);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[DllImport(&amp;quot;BumblebeeCamDLL&amp;quot;)]&lt;br /&gt;
public extern static bool CaptureImagePairDLL(); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[DllImport(&amp;quot;BumblebeeCamDLL&amp;quot;)]&lt;br /&gt;
public extern static TriclopsPackedColorImage GetImageDLL(WhichCamera cam); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[DllImport(&amp;quot;BumblebeeCamDLL&amp;quot;)]&lt;br /&gt;
public extern static void CloseCameraDLL(); &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[DllImport(&amp;quot;BumblebeeCamDLL&amp;quot;)]&lt;br /&gt;
public extern static tCameraCalibrationInfo GetCameraCalibrationInfo();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E as funções para aquisição do mapa de disparidades:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
public Image&amp;lt;Gray, short&amp;gt; GetDisparityMap(Image&amp;lt;Bgr, Byte&amp;gt; image_Left, Image&amp;lt;Bgr, Byte&amp;gt; image_Right) ;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
public void DisparityMap(Image&amp;lt;Gray, byte&amp;gt; image_left, Image&amp;lt;Gray, byte&amp;gt; image_right, Image&amp;lt;Gray, short&amp;gt; dispLeft, Image&amp;lt;Gray, short&amp;gt; dispRight);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para rodar o código basta conferir as dependências do mesmo, no Visual Studio, na aba References e nas Propriedades do Projeto (Lembrando que é necessário a isntalação da EmguCV antes de mais nada: http://www.emgu.com/wiki/index.php/Main_Page). Depois pressione F5, uma tela como abaixo deve aparecer:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imagem: 001.JPG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para realizar armazenar as imagens retificadas pressione o botão ImageCapture, as mesmas serão salvas e o caminho onde elas foram salvas deverá ser exibido.&lt;/div&gt;</summary>
		<author><name>Ljose</name></author>	</entry>

	</feed>