zoneminder and ros

Selfbondage software and other kinky developments

Moderators: Riddle, Shannon SteelSlave

Post Reply
mudwater
*
Posts: 5
Joined: 22 Jun 2012, 05:57

zoneminder and ros

Post by mudwater »

Zoneminder with a cam lets you set up zones say a circle in the center of the room if you leave the circle it sets the alarm off of your choice like maybe a e-stim like a dog invisible fence u get a shock but zoneminder will handle many cams so run the blow job trainer thru it to or all you cams one to skype then we come to R.O.S robot operating system ros has two sides to it one hardware other software and it learns so plug it all into ros zoneminder e stim vibrator usb powerstrip fuckinf machine team veiw put all the toys in hardware side then start on logic side once u program the computer never needs to learn that agin like say you get a new fucking machine the ros does not have to relearn they use it so u dont have to learn every thing once we had it set up we could share or logic that is once we have a blowjob trainer it n
ever has to be re wrote
User avatar
LoKiT
Retired Moderator
Posts: 372
Joined: 12 Apr 2010, 01:07

Re: zoneminder and ros

Post by LoKiT »

Thanks for the info, and its availble for Windows and Linux platforms.

Out of interest I did an easy development snippet called "Freeze Sucker" in the SDU which when you moved in front of a webcam painted you with a tracking bullseye.
Sadly I uploaded the exe onto Multiload which has now gone, but the source still lives in the SDU for anyone who wants to take it further with toys hooked up or create a game.
User avatar
LoKiT
Retired Moderator
Posts: 372
Joined: 12 Apr 2010, 01:07

Re: zoneminder and ros

Post by LoKiT »

Jason8888 kindly uploaded the original test piece at
Reupload:
https://rapidshare.com/files/3661033988 ... Sucker.exe

Mirror:
http://www.mediafire.com/?8f125fk123wdj87

The original source code for the intested is available in the SDU
Azerty
*
Posts: 3
Joined: 17 Aug 2012, 05:51

Re: zoneminder and ros

Post by Azerty »

Hi

i work on linux and i just install zoneminder.

I am not really a develloper, but it seem to be easier to use than VB and will probably work on linux.

I don't have access to SDU, so is it possible to have source of freezesucker please ?
User avatar
LoKiT
Retired Moderator
Posts: 372
Joined: 12 Apr 2010, 01:07

Re: zoneminder and ros

Post by LoKiT »

Azerty wrote:Hi
i work on linux and i just install zoneminder.
I am not really a develloper, but it seem to be easier to use than VB and will probably work on linux.
I don't have access to SDU, so is it possible to have source of freezesucker please ?
Its actually in Python. Sadly it seems the OpenCV libs have moved on since this was done. Just have to do the corrections for the new API names from the API docs. http://docs.opencv.org/

Freeze Sucker.py - Derived from M Williamson Track.py

Code: Select all

import cv

class Target:

    def __init__(self):

        self.capture = cv.CaptureFromCAM(-1)
        cv.NamedWindow("Freeze Sucker", 1)

    def run(self):
        # Capture first frame to get size
        frame = cv.QueryFrame(self.capture)
        frame_size = cv.GetSize(frame)
        grey_image = cv.CreateImage(cv.GetSize(frame), cv.IPL_DEPTH_8U, 1)
        moving_average = cv.CreateImage(cv.GetSize(frame), cv.IPL_DEPTH_32F, 3)
        difference = None
      
        while True:

            # Capture frame from webcam
            color_image = cv.QueryFrame(self.capture)
           
            # Smooth to get rid of false positives
            cv.Smooth(color_image, color_image, cv.CV_GAUSSIAN, 3, 0)
            
            if not difference:
                # Initialize
                difference = cv.CloneImage(color_image)
                temp = cv.CloneImage(color_image)
                cv.ConvertScale(color_image, moving_average, 1.0, 0.0)
            else:
                cv.RunningAvg(color_image, moving_average, 0.020, None)
            
            # Convert the scale of the moving average.
            cv.ConvertScale(moving_average, temp, 1.0, 0.0)
            
            # Minus the current frame from the moving average.
            cv.AbsDiff(color_image, temp, difference)
            
            # Convert the image to grayscale.
            cv.CvtColor(difference, grey_image, cv.CV_RGB2GRAY)
            
            # Convert the image to black and white.
            cv.Threshold(grey_image, grey_image, 70, 255, cv.CV_THRESH_BINARY)
            
            # Dilate and erode to get object blobs
            cv.Dilate(grey_image, grey_image, None, 18)
            cv.Erode(grey_image, grey_image, None, 10)
            
            # Calculate movements
            storage = cv.CreateMemStorage(0)
            contour = cv.FindContours(grey_image, storage, cv.CV_RETR_CCOMP, cv.CV_CHAIN_APPROX_SIMPLE)
            points = []
            
            while contour:
                # Draw rectangles
                bound_rect = cv.BoundingRect(list(contour))
                contour = contour.h_next()
                
                pt1 = (bound_rect[0], bound_rect[1])
                pt2 = (bound_rect[0] + bound_rect[2], bound_rect[1] + bound_rect[3])
                points.append(pt1)
                points.append(pt2)
                cv.Rectangle(color_image, pt1, pt2, cv.CV_RGB(255,0,0), 1)
                
            num_points = len(points)
            if num_points:
                # Draw bullseye in midpoint of all movements
                x = y = 0
                for point in points:
                    x += point[0]
                    y += point[1]
                x /= num_points
                y /= num_points
                center_point = (x, y)
                cv.Circle(color_image, center_point, 40, cv.CV_RGB(255, 255, 255), 1)
                cv.Circle(color_image, center_point, 30, cv.CV_RGB(255, 100, 0), 1)
                cv.Circle(color_image, center_point, 20, cv.CV_RGB(255, 255, 255), 1)
                cv.Circle(color_image, center_point, 10, cv.CV_RGB(255, 100, 0), 5)
            
            # Display frame to user
            cv.ShowImage("Freeze Sucker", color_image)
            
            # Listen for ESC or ENTER key
            c = cv.WaitKey(7) % 0x100
            if c == 27 or c == 10:
                break

if __name__=="__main__":
    t = Target()
    t.run()
Probably as much help as a chocolate heatsheild on space shuttle, but maybe you can have some fun with it?
Post Reply