@Radman- Think of it as a hash function. If I have an image with a specific size, within 100 bytes, you could not possibly find an image with the same size. Not by starting with a new scene. It would take you 100’s of guesses to do it. So of course there’s no guarantee it’s the same. But I’d give you 100 to 1 odds that it’s similar. Not counting a laser dot or a bug that moved. The small panning only works if it’s a carpet background for example, and the only subject is still completely framed. In this case it ignores movement of the subject or panning. This is a Feature not a Bug! Shadows moving as the sun moves thru a window change the size gradually over hours time.
It depends where you set your criteria. If you want to be able to say “definitely changed”, then use a wide range of sizes. If you want to be able to say “deinitely the same”, then use a narrow range. Both work! You choose.
@PeterH- Yes it is crude. You’re right it is also useful. What is properly? Certainly it can’t recognize a face or not if it’s the first time seeing a scene. I believe this is the proper way to detect a change. Because it ignores the things I want to ignore which change. And catches the things I want to catch. If you have different needs, it will likely work by simply changing the range parameter.
Again it can be used to tell if there was a significant change only. Or by changing the parameter it can detect a tiny change. The only limitation is that it cannot detect a dot like a bug moving. Why would you want to do this anyway? If it’s bigger than 5 pixels, and it’s not square it will detect its addition to the frame.
It can do 5 FPS with Uno. I can detect the presence or absence of an IR laser during the daylight without noise, but not in the dark. The trick is to modulate and move the beam. Specifically what would you like it to do? I’ll try it. It would take much effort and a fast CPU to write your own algorithm at 30 FPS.