if img.[i, j] > 0uy && img.Data.[i + 1, j] > 0uy && (img.Data.[i, j - 1] > 0uy && img.Data.[i - 1, j + 1] = 0uy || img.Data.[i, j + 1] > 0uy && img.Data.[i - 1, j - 1] = 0uy)
then
img.[i, j] <- 0uy
if img.[i, j] > 0uy && img.Data.[i + 1, j] > 0uy && (img.Data.[i, j - 1] > 0uy && img.Data.[i - 1, j + 1] = 0uy || img.Data.[i, j + 1] > 0uy && img.Data.[i - 1, j - 1] = 0uy)
then
img.[i, j] <- 0uy
if img.[i, j] > 0uy && img.Data.[i - 1, j] > 0uy && (img.Data.[i, j - 1] > 0uy && img.Data.[i + 1, j + 1] = 0uy || img.Data.[i, j + 1] > 0uy && img.Data.[i + 1, j - 1] = 0uy)
then
img.[i, j] <- 0uy
if img.[i, j] > 0uy && img.Data.[i - 1, j] > 0uy && (img.Data.[i, j - 1] > 0uy && img.Data.[i + 1, j + 1] = 0uy || img.Data.[i, j + 1] > 0uy && img.Data.[i + 1, j - 1] = 0uy)
then
img.[i, j] <- 0uy
queue.Add (imgData.[ni, nj, 0]) p'
// Reverse order is quicker.
queue.Add (imgData.[ni, nj, 0]) p'
// Reverse order is quicker.
let se = [| -1, 0; 0, -1; 1, 0; 0, 1 |]
let histogram = Array.zeroCreate 256
let se = [| -1, 0; 0, -1; 1, 0; 0, 1 |]
let histogram = Array.zeroCreate 256
let v = imgData.[i, j, 0] |> int
histogram.[v] <- histogram.[v] + 1
let v = imgData.[i, j, 0] |> int
histogram.[v] <- histogram.[v] + 1
if not flooded.[i, j] && imgData.[i, j, 0] = byte level
then
let mutable maxNeighborValue = 0uy
if not flooded.[i, j] && imgData.[i, j, 0] = byte level
then
let mutable maxNeighborValue = 0uy
while pointToCheck.Count > 0 do
let next = pointToCheck.Pop()
pointChecked.Add(next) |> ignore
while pointToCheck.Count > 0 do
let next = pointToCheck.Pop()
pointChecked.Add(next) |> ignore