When CCTV cameras detect some events like people or objects detection, it is often required that the actual event spot on world map be estimated because the event occurrence spot is restricted to each camera’s view. The actual spot is projected on each camera view, so each has the different projected point of the event spot. Of course, it is also possible for the spot not to be projected in some cameras’ view. Mostly, in this case, the graphics library such as OpenGL can be helpful, but I want to implement this without graphics libraries.
First, the installed CCTV camera information is needed including focal length, pan angle, tilt angle, camera height from the ground, and the actual position on the world map. Here, the world map means ground or floor plane, so the origin can be any point on this plane. Second, the altitude of ground or floor should be known. It is more realistic that the floor is not flat, so the floor can be represented as the stair shape. It means the floor can be divided by some area whose altitude is a user-defined.
World Map to Camera And Vice Versa
As above, the center image represents a world map and it has four cameras installed on each corner. The yellow box in the world map is a kind of event zone whose altitude is set more higher than default one. If the event occurs in the world map as the red point which is located in the top-right corner of ‘F’ letter, then it can be correctly projected in the view of each camera as a red point in the same manner. Moreover, if some cameras detect an event, its position can be also converted to the point on the world map. In fact, what these conversion is possible means that the whole view of each camera can be rendered regardless of the event occurrence. The four cameras above were rendered in this way.