PSP Store › Apps

PSPuht v1.2.0

Released Jul 23, 2010 · Apps
1,170 downloads here

Install on your PSP

Archive: extract psphut_v120_brewology_com.zip and copy the bin folder (inside Ultimate Head Tracker 1.2.0/uht_guexample_1/) into /PSP/GAME/ on the Memory Stick.

Start it from Game › Memory Stick. On a PSP Go without a Memory Stick, use /PSP/GAME/ on the internal storage.

Homebrew needs custom firmware such as ARK-5. New to PSP homebrew? Start here.

Files

FileSizeSHA-256
psphut_v120.zip1.7 MB 70a646a9…272a Download

From the PSPBrew downloads, on Brewology since they were posted. Served from Brewology.

Screenshots

Release notes

v1.2.0 · PSPuht v1.2.0 · Jul 23, 2010

Homebrew coder Mcidclan has released a new version of PSPuht, development library for upcoming developers that lets you add head and hand-tracking features to your homebrew projects using the PSP Go!Cam.
How it works:
PSPuht is based on image processing. Basicaly, it identifies pixels values probably belonging to skin color. This, in order to define a monochrome cloud corresponding to the tracked entity. Then, it evaluates the cloud position.

How to use it:
3 pspgu exemples are provided in the same archive in the library. Warning. For better results while using software working with this library, please, be aware of the following recommendations :

  1. Use in a place, well lit by white light
  2. Stand back to a white clean wall
  3. Wear monochrome clothing, white or gray
  4. For head-tracking, wear Turtleneck
  5. For hand-tracking, wear long sleeves

PSPuht for PSP ultimate head/hand tracker. Library documentation - v1.2.0
/**

  • Create the ultimate head/hand tracker

*/

Uht();
//New stuff - v1.2.0
/**

  • Apply grids of pixelization on the cloud.
  • The grids allows the elimination of parasites.

*

  • For all of grids, you need to give the cell size and
  • a tolerance relating to the pixels outside the cloud.

*/

void setGrid(const u8 gSize, vec3i *grids);

/**

  • Define the minimum pixels quantity in the cloud
  • (corresponding to the tracked entity)

*

  • minimun quantity on x, minimun quantity on y

*/

void setMinDim(u8 xMin, u8 yMin);

//New stuff - v1.2.0
/**

  • You can define a maximun pixels quantity accepted
  • between the differents parts of the cloud

*

  • maximun quantity on x, maximun quantity on y

*/

void setMaxMrg(const u8 xMrg, const u8 yMrg);

//New stuff - v1.2.0
/**

  • Set the Ycbcr threshold type.

*

  • Aivalables types are :
  • YCBCR_RESTRICTIVE_THRESH
  • YCBCR_APPROPRIATE_THRESH
  • YCBCR_PERMISSIVE_THRESH

*/

void setYcbcrThresh(u8 threshNum);

/**

  • Init the camera and the corresponding video thread.
  • Pass thread's priority as argument

*/

int initCam(u8 prop = 0×10);

/**

  • In the case of direct rendering, (without applying the medium filter)
  • the fist parameter must be a pointer on an allocation of 0×22240 bytes
  • Else, it must be an allocattion of 0×34E40 bytes.

*

  • The second parameter indicates if we use the direct rendering.
  • The last parameter indicates if the FB_565 buffer shall be used or not.

*/

void initBuffer(void *bWork, bool dRender, bool fb565);

/**

  • In all case, it correspond to the camera stream.

*/

u32 *FB_MPEG;

/**

  • RGBA Buffer (32 bits)

*

  • if we are not in direct rendering, the medium filter is applied

*/

u32 *FB_8888;

/**

  • RGB_565 buffer (16 bits)
  • Unable if fb565 is true.

*

  • if we are not in direct rendering, the medium filter is applied

*/

u16 *FB_565;

//New stuff - v1.2.0
/**

  • Buffer that contains the cloud of pixels on which we work.
  • the cloud correspond to the traked entity.

*/

u8 *B_WORK;

/**

  • Contains tracking informations
  • pOut.x, pOut.y, pOut.z, pOut.w for
  • X begin, X end, Y begin, Y end

*/

vec4i pOut;

/**

  • Is true for the case when the camera streaming is working well.

*/

bool run;

/**

  • Correspond to sceUsbCamGetLensDirection();

*/

bool direction;

//New stuff - v1.2.0
/**

  • Set it to true before initCam()
  • if you seek to force the ambient light detection.

*/

bool checkAmbientLight;

/**

  • Set it to true before delete if you seek to
  • delete the tracker without unload modules.

*/

bool relativeClean;

/**

  • Id of the tracker thread.

*/

int thid;

/**

  • Active the Frame Manager.

*/

void fm_activated();
/**

  • Return True if the FM is waiting for a « next frame » signal.

*/

bool fm_isWaiting();

/**

  • Send a « next frame » signal

*/

void fm_nextFrame();
/**

  • Delete the tracker and unload modules if not relativeClean
  • else delete the tracker only, wihtout unload modules.

*/
~Uht();

Something wrong with this listing? Report a problem · Are you the developer? Claim this listing