Swiftにてグレースケール画像で任意のX,Y座標の白黒の濃度の値(0~255)を抽出したい


Swiftにて白黒濃淡画像（グレースケール画像です）から指定されます任意のX,Y座標の白黒の濃度の値(0~255)を抽出したいと思っています。  
どこか良いサイト等ございますでしょうか。  
特に画像処理の知識等を当方持ちあわせておりません。皆様のお力添えをいただけますと幸いです。




UIImageからピクセルの情報にアクセスすればよいので

<https://stackoverflow.com/questions/25146557/how-do-i-get-the-color-of-a-
pixel-in-a-uiimage-with-swift>

の回答がよさそうに見えます。CGImageに変換したのち、UnsafePointerでごりごりアクセスする形になりそうです。

# 追加（グレースケール）

次の情報が良さそうです。

<https://stackoverflow.com/questions/16768739/how-to-detect-image-is-
grayscale>

> CGColorSpaceGetNumberOfComponents returns 1: This image is grayscale,
> finished (one exception: It could be alpha-only, but I doubt you'll be
> sending any images like that. If you are, there is a way to determine
> whether an image is alpha only through its CGAlphaInfo)
>
> CGColorSpaceGetNumberOfComponents returns 3: This image is RGB, and further
> analysis is needed to determine if it is grayscale or not (as the other
> answer states, loop over the pixels and if you find one where !(R == G == B)
> then it is not grayscale.
>
> CGColorSpaceGetModel will return values like kCGColorSpaceModelMonochrome or
> kCGColorSpaceModelRGB. This will take the ambiguity out of the above. After
> that you can check the same way for RGB or CMYK.




UIImageからピクセルの情報にアクセスすればよいので

<https://stackoverflow.com/questions/25146557/how-do-i-get-the-color-of-a-
pixel-in-a-uiimage-with-swift>

の回答がよさそうに見えます。CGImageに変換したのち、UnsafePointerでごりごりアクセスする形になりそうです。

# 追加（グレースケール）

次の情報が良さそうです。

<https://stackoverflow.com/questions/16768739/how-to-detect-image-is-
grayscale>

> CGColorSpaceGetNumberOfComponents returns 1: This image is grayscale,
> finished (one exception: It could be alpha-only, but I doubt you'll be
> sending any images like that. If you are, there is a way to determine
> whether an image is alpha only through its CGAlphaInfo)
>
> CGColorSpaceGetNumberOfComponents returns 3: This image is RGB, and further
> analysis is needed to determine if it is grayscale or not (as the other
> answer states, loop over the pixels and if you find one where !(R == G == B)
> then it is not grayscale.
>
> CGColorSpaceGetModel will return values like kCGColorSpaceModelMonochrome or
> kCGColorSpaceModelRGB. This will take the ambiguity out of the above. After
> that you can check the same way for RGB or CMYK.

