yes, exactly.
there is absolutely no point in assigning the return value because you already have that. the only time it would make sense is if you do not have a reference to what you passed in, say like highlighted = cv.rectangle(source.copy(), ...)
(to keep source clean, make a copy, draw on it, and keep a ref)
what you see is a consequence of how the Python API is generated, from the C++ API.
the C++ APIs don’t return anything.
yes, data would be good to have… if that is required to reproduce the issue. you can throw multiple images onto imgur, or one per post right here. JSON would also fit in a post, if it’s not megabytes of it. for other non-image data, people tend to use google drive, dropbox, or similar services.
some issues don’t need data attached, if the “data” can be generated in source. if you can reproduce the issue with dummy data, that’s perfectly fine. the important thing is to give people something they can run, see the issue for themselves, and explore/debug it.
your code so far only contains one imshow, but no waitkey at all. do you mean to tell me that code is misbehaving? I assumed you’d still be holding back some code, which is the actual code you have trouble with.
if what you posted is the MRE, then clearly you’re missing a waitKey. in that case, I’d recommend reviewing some of the tutorials on docs.opencv.org that demonstrate imshow… and a MRE for that issue wouldn’t need any data at all because you can reproduce that effect with nothing but img = np.zeros((512, 512, 3), 'uint8'); ...
the “minimal” in MRE means simplifying the problem, which also means simplifying the required data