mathematica:
CODE
img = Import["d:\\tmp\\hor\\images.bmp"]
data = ImageData[img];
size = ImageDimensions[img]
sky = Table[Mean[Flatten[data[[1 ;; 20, ;; , c]]]], {c, 1, 3}]
Graphics[{RGBColor[sky], Disk[]}]
diff = Table[Norm[data[[y, x]] - sky]^2, {y, size[[2]]}, {x, size[[1]]}];
Image[diff]
horData = Table[{x, Sum[y*diff[[y, x]], {y, size[[2]]}]/Sum[diff[[y, x]], {y, size[[2]]}]}, {x, size[[1]]}];
hor = Fit[horData, {1, x}, x];
Show[img, ListPlot[Table[horData[[n]]*{1, -1} + {0, size[[2]]}, {n, size[[1]]}]], Plot[size[[2]] - hor, {x, 1, size[[1]]}, PlotStyle -> {Red, Thick}]]
Нажмите для просмотра прикрепленного файла