Instead of shelling out to python, you can do this all "in house" using node-red-contrib-image-tools ...
[{"id":"7fd7ebc37e4a475f","type":"function","z":"a4595cfa.591e2","name":"image data","func":"\n\n//get data from step 2 of the colab at...\n// https://colab.research.google.com/github/tinyMLx/colabs/blob/master/4-2-12-OV7675ImageViewer.ipynb#scrollTo=WSozbpyAFs8a\n\nmsg.data = [] //replace [] with data from colab\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":750,"y":500,"wires":[["c690b31453e4a712"]]},{"id":"31b45a27dfbadc57","type":"inject","z":"a4595cfa.591e2","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":570,"y":500,"wires":[["7fd7ebc37e4a475f"]]},{"id":"c690b31453e4a712","type":"jimp-image","z":"a4595cfa.591e2","name":"create blank img 144 x 176 ","data":"{\"w\": 176, \"h\": 144 }","dataType":"json","ret":"img","parameter1":"","parameter1Type":"msg","parameter2":"","parameter2Type":"msg","parameter3":"","parameter3Type":"msg","parameter4":"","parameter4Type":"msg","parameter5":"","parameter5Type":"msg","parameter6":"","parameter6Type":"msg","parameter7":"","parameter7Type":"msg","parameter8":"","parameter8Type":"msg","sendProperty":"image","sendPropertyType":"msg","parameterCount":0,"jimpFunction":"none","selectedJimpFunction":{"name":"none","fn":"none","description":"Just loads the image.","parameters":[]},"x":680,"y":580,"wires":[["dbdee63df5e50197"]]},{"id":"dbdee63df5e50197","type":"function","z":"a4595cfa.591e2","name":"Convert RGB565 to RGB 24 bitmap","func":"\nconst data = msg.data;\nconst image = msg.image;\n\nlet x = 0;\nlet y = 0;\nconst width = image.bitmap.width;\nconst height = image.bitmap.height;\n\nfor (let index = 0; index < data.length; index++) {\n const pixel = swap16(data[index]);//get pixel data and change endianness\n //Convert RGB565 to RGB 24 - bit\n let r = ((pixel >> 11) & 0x1f) << 3;\n let g = ((pixel >> 5) & 0x3f) << 2;\n let b = ((pixel >> 0) & 0x1f) << 3;\n let rbghex = RGBA2INT(r,g,b,255);\n image.setPixelColor(rbghex, x, y);\n x++;\n if(x >= width) {\n x = 0;\n y++;\n }\n}\nmsg.payload = image;\nreturn msg;\n\nfunction swap16(val) {\n return ((val & 0xFF) << 8) | ((val >> 8) & 0xFF);\n}\n\nfunction RGBA2INT(red, green, blue, alpha) {\n var r = red & 0xFF;\n var g = green & 0xFF;\n var b = blue & 0xFF;\n var a = alpha & 0xFF;\n return (r << 24 >>> 0) + (g << 16) + (b << 8) + (a);\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":980,"y":580,"wires":[["dcb17aba9c5030a3"]]},{"id":"dcb17aba9c5030a3","type":"jimp-image","z":"a4595cfa.591e2","name":"image to buffer","data":"payload","dataType":"msg","ret":"buf","parameter1":"","parameter1Type":"msg","parameter2":"","parameter2Type":"msg","parameter3":"","parameter3Type":"msg","parameter4":"","parameter4Type":"msg","parameter5":"","parameter5Type":"msg","parameter6":"","parameter6Type":"msg","parameter7":"","parameter7Type":"msg","parameter8":"","parameter8Type":"msg","sendProperty":"payload","sendPropertyType":"msg","parameterCount":0,"jimpFunction":"none","selectedJimpFunction":{"name":"none","fn":"none","description":"Just loads the image.","parameters":[]},"x":1250,"y":580,"wires":[["b5f620707705637f"]]},{"id":"b5f620707705637f","type":"image viewer","z":"a4595cfa.591e2","name":"","width":160,"data":"payload","dataType":"msg","active":true,"x":1410,"y":580,"wires":[[]]}]
...then feed the binary image data into your model
NOTE:
I could not post the full flow with the "image data" function because the image data inside of the function was too large to post.
I basically copied the data from step 2 of the colab and added it to msg.data
in the "image data" function node like this...
msg.data = [
0x905B, 0x905B, 0xB05B,
//Lots and lots of 0xhexadecimal data snipped for brevity
0x5394, 0x5394, 0x7394
]
return msg;