Revision: 8594
http://playerstage.svn.sourceforge.net/playerstage/?rev=8594&view=rev
Author: hsujohnhsu
Date: 2010-03-18 22:18:46 +0000 (Thu, 18 Mar 2010)
Log Message:
-----------
check if source is null before bayer conversion. this is a problem when
starting sim in paused mode, resuming breaks it
Modified Paths:
--------------
code/gazebo/trunk/server/rendering/OgreCamera.cc
Modified: code/gazebo/trunk/server/rendering/OgreCamera.cc
===================================================================
--- code/gazebo/trunk/server/rendering/OgreCamera.cc 2010-03-18 02:55:26 UTC
(rev 8593)
+++ code/gazebo/trunk/server/rendering/OgreCamera.cc 2010-03-18 22:18:46 UTC
(rev 8594)
@@ -761,102 +761,104 @@
/// post process, convert from rgb to bayer
void OgreCamera::ConvertRGBToBAYER(unsigned char* dst, unsigned char* src,
std::string format,int width, int height)
{
- // do last minute conversion if Bayer pattern is requested, go from R8G8B8
- if (format == "BAYER_RGGB8")
+ if (src)
{
- for (int i=0;i<width;i++)
+ // do last minute conversion if Bayer pattern is requested, go from R8G8B8
+ if (format == "BAYER_RGGB8")
{
- for (int j=0;j<height;j++)
+ for (int i=0;i<width;i++)
{
- //
- // RG
- // GB
- //
- // determine position
- if (j%2) // even column
- if (i%2) // even row, red
- dst[i+j*width] = src[i*3+j*width*3+0];
- else // odd row, green
- dst[i+j*width] = src[i*3+j*width*3+1];
- else // odd column
- if (i%2) // even row, green
- dst[i+j*width] = src[i*3+j*width*3+1];
- else // odd row, blue
- dst[i+j*width] = src[i*3+j*width*3+2];
+ for (int j=0;j<height;j++)
+ {
+ //
+ // RG
+ // GB
+ //
+ // determine position
+ if (j%2) // even column
+ if (i%2) // even row, red
+ dst[i+j*width] = src[i*3+j*width*3+0];
+ else // odd row, green
+ dst[i+j*width] = src[i*3+j*width*3+1];
+ else // odd column
+ if (i%2) // even row, green
+ dst[i+j*width] = src[i*3+j*width*3+1];
+ else // odd row, blue
+ dst[i+j*width] = src[i*3+j*width*3+2];
+ }
}
}
- }
- else if (format == "BAYER_BGGR8")
- {
- for (int i=0;i<width;i++)
+ else if (format == "BAYER_BGGR8")
{
- for (int j=0;j<height;j++)
+ for (int i=0;i<width;i++)
{
- //
- // BG
- // GR
- //
- // determine position
- if (j%2) // even column
- if (i%2) // even row, blue
- dst[i+j*width] = src[i*3+j*width*3+2];
- else // odd row, green
- dst[i+j*width] = src[i*3+j*width*3+1];
- else // odd column
- if (i%2) // even row, green
- dst[i+j*width] = src[i*3+j*width*3+1];
- else // odd row, red
- dst[i+j*width] = src[i*3+j*width*3+0];
+ for (int j=0;j<height;j++)
+ {
+ //
+ // BG
+ // GR
+ //
+ // determine position
+ if (j%2) // even column
+ if (i%2) // even row, blue
+ dst[i+j*width] = src[i*3+j*width*3+2];
+ else // odd row, green
+ dst[i+j*width] = src[i*3+j*width*3+1];
+ else // odd column
+ if (i%2) // even row, green
+ dst[i+j*width] = src[i*3+j*width*3+1];
+ else // odd row, red
+ dst[i+j*width] = src[i*3+j*width*3+0];
+ }
}
}
- }
- else if (format == "BAYER_GBRG8")
- {
- for (int i=0;i<width;i++)
+ else if (format == "BAYER_GBRG8")
{
- for (int j=0;j<height;j++)
+ for (int i=0;i<width;i++)
{
- //
- // GB
- // RG
- //
- // determine position
- if (j%2) // even column
- if (i%2) // even row, green
- dst[i+j*width] = src[i*3+j*width*3+1];
- else // odd row, blue
- dst[i+j*width] = src[i*3+j*width*3+2];
- else // odd column
- if (i%2) // even row, red
- dst[i+j*width] = src[i*3+j*width*3+0];
- else // odd row, green
- dst[i+j*width] = src[i*3+j*width*3+1];
+ for (int j=0;j<height;j++)
+ {
+ //
+ // GB
+ // RG
+ //
+ // determine position
+ if (j%2) // even column
+ if (i%2) // even row, green
+ dst[i+j*width] = src[i*3+j*width*3+1];
+ else // odd row, blue
+ dst[i+j*width] = src[i*3+j*width*3+2];
+ else // odd column
+ if (i%2) // even row, red
+ dst[i+j*width] = src[i*3+j*width*3+0];
+ else // odd row, green
+ dst[i+j*width] = src[i*3+j*width*3+1];
+ }
}
}
- }
- else if (format == "BAYER_GRBG8")
- {
- for (int i=0;i<width;i++)
+ else if (format == "BAYER_GRBG8")
{
- for (int j=0;j<height;j++)
+ for (int i=0;i<width;i++)
{
- //
- // GR
- // BG
- //
- // determine position
- if (j%2) // even column
- if (i%2) // even row, green
- dst[i+j*width] = src[i*3+j*width*3+1];
- else // odd row, red
- dst[i+j*width] = src[i*3+j*width*3+0];
- else // odd column
- if (i%2) // even row, blue
- dst[i+j*width] = src[i*3+j*width*3+2];
- else // odd row, green
- dst[i+j*width] = src[i*3+j*width*3+1];
+ for (int j=0;j<height;j++)
+ {
+ //
+ // GR
+ // BG
+ //
+ // determine position
+ if (j%2) // even column
+ if (i%2) // even row, green
+ dst[i+j*width] = src[i*3+j*width*3+1];
+ else // odd row, red
+ dst[i+j*width] = src[i*3+j*width*3+0];
+ else // odd column
+ if (i%2) // even row, blue
+ dst[i+j*width] = src[i*3+j*width*3+2];
+ else // odd row, green
+ dst[i+j*width] = src[i*3+j*width*3+1];
+ }
}
}
}
-
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit