### Input validation

If the received image is not RGB, throwing an `IllegalArgumentException` without a custom message is not very friendly. Users would have to look at the code to understand what went wrong exactly.

The long chain `image.getColorModel().getColorSpace().getType()` is extracted to an `imageType` local variable that's only used for validation.
I would be good to move the validation to a dedicated helper method, let's say `validateImageType`.

### Java conventions

Member variables should be declared at the top, followed by constructors, followed by methods. Very roughly speaking. So move the declaration of `threshold` higher.

### Naming

As the interface name already implies the conversion to black and white,
the method name `toBlackAndWhite` is redundant. I'd rename it to simply `convert`.