我想要做的是寫一個函數,計算一個灰度圖像的直方圖與直方圖範圍劃分的轉發數量的分區(anzBin)。然後,我通過圖像像素的價值compairing不同的垃圾箱,並在時的值適合在運行,1試圖計算我自己的直方圖沒有opencv calcHist()
vector<int> calcuHisto(const IplImage *src_pic, int anzBin)
{
CvSize size = cvGetSize(src_pic);
int binSize = (size.width/256)*anzBin;
vector<int> histogram(anzBin,0);
for (int y = 0; y<size.height; y++)
{
const uchar *src_pic_point =
(uchar *)(src_pic->imageData + y*src_pic->widthStep);
for (int x = 0; x<size.width; x++)
{
for (int z = 0; z < anzBin; z++)
{
if (src_pic_point[x] <= z*binSize)
{
histogram[src_pic_point[x]]++;
}
}
}
}
return histogram;
}
增加斌的價值,但遺憾的是它不工作... 什麼是錯的這裏? 請幫助
'int binSize =(size.width/256)* anzBin;'因爲整數數學,'binSize' 0在這裏嗎?我的意思是如果size.width小於256不會'binSize'爲0? – drescherjm
這不是我想要計算的東西,你是對的。我的目標是這樣的:binSize =(圖像()/ 256)* anzBin但我該怎麼做? – AloisD
替換256與256.0 – drescherjm