Skip to content

Commit f8c60f0

Browse files
chsinMarkDaoust
authored andcommitted
Support for non-TYPE_3BYTE_BGR images
1 parent 3bc9c8b commit f8c60f0

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

object_detection/src/main/java/DetectObjects.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -147,11 +147,12 @@ private static void bgr2rgb(byte[] data) {
147147
private static Tensor<UInt8> makeImageTensor(String filename) throws IOException {
148148
BufferedImage img = ImageIO.read(new File(filename));
149149
if (img.getType() != BufferedImage.TYPE_3BYTE_BGR) {
150-
throw new IOException(
151-
String.format(
152-
"Expected 3-byte BGR encoding in BufferedImage, found %d (file: %s). This code could be made more robust",
153-
img.getType(), filename));
150+
BufferedImage newImage = new BufferedImage(
151+
img.getWidth(), img.getHeight(), BufferedImage.TYPE_3BYTE_BGR);
152+
newImage.createGraphics().drawImage(img, 0, 0, img.getWidth(), img.getHeight(), null);
153+
img = newImage;
154154
}
155+
155156
byte[] data = ((DataBufferByte) img.getData().getDataBuffer()).getData();
156157
// ImageIO.read seems to produce BGR-encoded images, but the model expects RGB.
157158
bgr2rgb(data);

0 commit comments

Comments
 (0)