我是Mac上編程的新手(即xcode和cocoa),我試圖簡單地執行一個冒泡排序,並且遇到很多困難。如何對可可中的整數數組進行排序?
這樣做的目標是通過使用9像素內核使用中值濾波器來過濾圖像。我採用所有九個像素的灰度值,然後我試圖把它們放在一個九點數組中,並對數組進行排序以提取九個像素的中值(因此,如果使用上升或下降無關緊要)。
我一直在嘗試將像素值(這是整數)存儲到NSMutableArray
,但我真的不知道如何去做這個或如何在數組填充時對它們進行排序。
// Perform median filter on all images in the stack
for (x = 0; x < [curPix pwidth]; x++){
for (y = 0; y < [curPix pheight]; y++){
float value;
int tLeft, tMid, tRight, cLeft, index, cRight, bLeft, bMid, bRight; // takes in pixel placement
value = tLeft = tMid = tRight = cLeft = index = cRight = bLeft = bMid = bRight = 0;
curPos = y * [curPix pwidth] + x;
if (x != 0 && y != 0 && x != ([curPix pwidth]-1) && y != ([curPix pheight]-1)){
//Make kernel for median filter
index = fImage[curPos]; // index pixel
tLeft = fImage[index - [curPix pwidth] - 1]; // top left
tMid = fImage[index - [curPix pwidth]]; // top middle
tRight = fImage[index - [curPix pwidth] + 1]; // top right
cLeft = fImage[index - 1]; // center left
cRight = fImage[index + 1]; // center right
bLeft = fImage[index + [curPix pwidth] - 1]; // bottom left
bMid = fImage[index + [curPix pwidth]]; // bottom middle
bRight = fImage[index + [curPix pwidth] + 1]; // bottom right
// Need to make array, populate with pixels (above), and sort.
// Once sorted, take median value, save it as 'value', and store it as new pixel value
fImage[curPos] = (int) value; // return value to index
}
else {
fImage[curPos] = fImage[curPos];
}
}
}
這是爲了排序可可對象,而不是'int's。 –