我正在使用OpenCV庫進行圖像處理項目以檢測手部。我初始化了圖像iplimage
,給它着色,然後用cvCvtColor(imageHand,imageHand,CV_BGR2HSV);
將它轉換成HSV,我不知道高效的算法,所以這是我的問題。請檢查我的代碼:使用OpenCV進行手部檢測
for(int row = 0; row < imageHand->height; row++)
{
for (int col = 0; col < imageHand->width; col++)
{
h =(imageHand->imageData[imageHand->widthStep * row + col * 3]) ;
s = (imageHand->imageData[imageHand->widthStep * row + col * 3 + 1]);
v = (imageHand->imageData[imageHand->widthStep * row + col * 3 + 2]);
if( h>85)
{
imageHand->imageData[imageHand->widthStep * row + col * 3 ] = 0 ;
imageHand->imageData[imageHand->widthStep * row + col * 3 + 1 ] =0 ;
imageHand->imageData[imageHand->widthStep * row + col * 3 + 2 ] = 0 ;
}
else
{
imageHand->imageData[imageHand->widthStep * row + col * 3 ] = 255 ;
imageHand->imageData[imageHand->widthStep * row + col * 3 + 1 ] = 255 ;
imageHand->imageData[imageHand->widthStep * row + col * 3 + 2 ] = 255 ;
}
}
}
我認爲搜索h
的範圍是> 85
!? 如果你知道更好的算法,請引導我。
我清理了拼寫和語法 - 請檢查它以確保信息仍然正確。 – Pubby 2012-02-06 23:23:03
你能指定你需要手部檢測嗎?它應該是實時還是可以離線完成?你需要在各種光照條件下工作嗎?或者,也許你只是在玩? – 2012-02-06 23:31:40
我需要手動檢測代碼將其移植到FPGA,因此它必須是實時和高效的,我希望它在最可能的條件下工作 – 2012-02-07 01:15:47