In the doc page for Binarize (under Details and Options), is this statement:
Binarize works with 2D and 3D images. It converts multichannel and color images into grayscale images, then produces an image in which every pixel has value 0 or 1.
Interestingly, this statement is not completely accurate, as my function below demonstrates. But at least the behavior for Binarize makes more sense than the ColorConvert to "Grayscale" evaluation. I'd argue that the latter implementation is a bug.
In[98]:= binComp[imageData_List, thresh_] :=
Module[{im, im2},
im = Image[imageData, ColorSpace -> Automatic, Interleaving -> True];
im2 = ColorConvert[im, "Grayscale"];
ImageData /@ {Binarize[im, thresh], Binarize[im2, thresh]}
]
In[99]:= binComp[{{{1, 1, 1, 0, 0, 0}}}, 0.5]
Out[99]= {{{0}}, {{1}}}
In[100]:= binComp[{{{1, 1, 1.001, 0, 0, 0}}}, 0.5]
Out[100]= {{{1}}, {{1}}}
I argue that this evaluation is a bug:
In[102]:=
ColorConvert[
Image[{{{1, 1, 1, 0, 0, 0}}}, ColorSpace -> Automatic,
Interleaving -> True], "Grayscale"] // ImageData
Out[102]= {{0.5925}}
Thanks for your input. Your objections are certainly valid!