コード例 #1
0
ファイル: Program.cs プロジェクト: dalinhuang/appcollection
        private static void HandleInput(
            LocalDb4oProvider persistenceService,
            Damany.Util.PersistentWorker retriever)
        {
            while (true)
            {
                var key = Console.ReadKey();
                switch (key.Key)
                {
                    case ConsoleKey.UpArrow:
                        retriever.WorkFrequency *= 2;
                        break;
                    case ConsoleKey.DownArrow:
                        retriever.WorkFrequency /= 2;
                        break;
                    case ConsoleKey.F:
                        var query =
                            persistenceService.GetPortraits(-1, new Damany.Util.DateTimeRange(DateTime.Now.AddHours(-1), DateTime.Now));

                        Console.WriteLine("query hit: " + query.Count);

                        break;
                    default:
                        retriever.Stop();
                        exit.Set();
                        return;
                        break;
                }
            }
        }
コード例 #2
0
        public ConfigCameraProvider(Damany.Component.ICamera camera)
        {
            if (camera == null)
                throw new ArgumentNullException("camera", "camera is null.");

            this.camera = camera;
        }
コード例 #3
0
 public IList<DTO.Frame> GetFrames(Damany.Util.DateTimeRange range)
 {
     using (var container = OpenContainer())
     {
         return container.Query<DTO.Frame>(frame => {
            return frame.CapturedAt >= range.From && frame.CapturedAt <= range.To;
         });
     }
 }
コード例 #4
0
 public IList<DTO.Portrait> GetPortraits(Damany.Util.DateTimeRange range)
 {
     using (var container = OpenContainer())
     {
         return container.Query<DTO.Portrait>(portrait =>
         {
             return portrait.CapturedAt >= range.From && portrait.CapturedAt <= range.To;
         });
     }
 }
コード例 #5
0
ファイル: Manager.cs プロジェクト: vanan08/damany
 private void HandlePacket(Damany.EPolice.Networking.Packets.BinaryPacket packetBuffer)
 {
     foreach (var parser in this.Parsers)
     {
         if (parser.CanParse(packetBuffer))
         {
             parser.Parse(packetBuffer);
             parser.NotifyListener();
             return;
         }
     }
 }
コード例 #6
0
        public ServiceProvider(
            //MotionDetectWrapper.MotionDetector motionDetector,
            FaceSearchWrapper.FaceSearch faceSearcher,
            Damany.Component.ICamera camera)
        {
            //             if (motionDetector == null)
            //                 throw new ArgumentNullException("motionDetector", "motionDetector is null.");
            if (faceSearcher == null)
                throw new ArgumentNullException("faceSearcher", "faceSearcher is null.");
            if (camera == null)
                throw new ArgumentNullException("camera", "camera is null.");

            //this.motionDetector = motionDetector;
            this.faceSearcher = faceSearcher;
            this.camera = camera;
        }
コード例 #7
0
        public IList<DTO.Frame> GetFrames(int cameraId, Damany.Util.DateTimeRange range)
        {
            var container = OpenContainer();
            var frames = container.Query<DTO.Frame>(frame =>
            {
                bool flag = frame.CapturedAt >= range.From && frame.CapturedAt <= range.To;

                if (cameraId != -1)
                {
                    flag = flag && frame.SourceId == cameraId;
                }

                return flag;
            });

            return frames;
        }
コード例 #8
0
        public FaceSearchFacade(Damany.Imaging.Processors.MotionDetector motionDetector,
            Damany.Imaging.Processors.PortraitFinder portraitFinder,
            IEnumerable<Damany.Imaging.Common.IFacePostFilter> facePostFilters,
            FaceComparer faceComparer,
            IEventAggregator eventAggregator)
        {
            _motionDetector = motionDetector;
            _portraitFinder = portraitFinder;
            _facePostFilters = facePostFilters;
            _eventAggregator = eventAggregator;
            _faceComparer = faceComparer;

            MotionQueueSize = 10;

            Rectangle rectangle = GetRoi();

            _portraitFinder.ROI = rectangle;
        }
コード例 #9
0
        public void DownloadVideoFileAt(
            System.Net.IPAddress ip,
            int cameraId,
            DateTime time,
            System.IO.Stream destStream,
            Damany.RemoteImaging.Common.IProgress progress
            )
        {
            var path = Gateways.Search.Instance.VideoFilePathRecordedAt(ip, time, cameraId);
            if (string.IsNullOrEmpty(path))
            {
                throw new System.IO.FileNotFoundException();
            }

            long size = Gateways.Search.Instance.GetFileSizeInBytes(ip, cameraId, path);

            var buffer = new byte[64 * 1024];
            using (progress)
            using (System.IO.Stream fs = Gateways.Search.Instance.DownloadFile(ip, path))
            using (destStream)
            {
                long bytesCount = 0;
                while (true)
                {
                    int bytesRead = fs.Read(buffer, 0, buffer.Length);
                    if (bytesRead == 0)
                    {
                        break;
                    }

                    destStream.Write(buffer, 0, bytesRead);
                    bytesCount += bytesRead;

                    double percent = (double)bytesCount / size;
                    percent *= 100;

                    progress.Percent = (int)percent;
                    System.Diagnostics.Debug.WriteLine(percent);

                }

            }
        }
コード例 #10
0
ファイル: Factory.cs プロジェクト: dalinhuang/appcollection
        public static Damany.Imaging.Common.IFrameStream NewFrameStream(Damany.PC.Domain.CameraInfo cameraInfo)
        {
            IFrameStream source = null;

            switch (cameraInfo.Provider)
            {
            #if DEBUG
                    case Damany.PC.Domain.CameraProvider.LocalDirectory:
                    break;
            #endif

                case Damany.PC.Domain.CameraProvider.Sanyo:
                    var sanyo = new SanyoNetCamera();
                    sanyo.Uri = cameraInfo.Location;
                    sanyo.UserName = cameraInfo.LoginUserName ?? "guest";
                    sanyo.PassWord = cameraInfo.LoginPassword ?? "guest";
                    source = sanyo;
                    break;

            #if DEBUG
                    case Damany.PC.Domain.CameraProvider.AipStar:

                    var aip = new Damany.Cameras.Wrappers.AipStarCamera(cameraInfo.Location.Host, cameraInfo.Location.Port, "", "");
                    aip.UserName = cameraInfo.LoginUserName ?? "system";
                    aip.PassWord = cameraInfo.LoginPassword ?? "system";
                    source = aip;
                    break;
            #endif

                default:
                    throw new NotSupportedException("camera type not supported");

                    break;
            }

            source.Id = cameraInfo.Id;

            return source;
        }
コード例 #11
0
        public void AddFace(Damany.PortraitCapturer.DAL.DTO.Portrait p)
        {
            var item = new GalleryItem();
            item.Image = p.ImageCopy;
            item.Hint = p.CaptureTime.ToString();
            item.Tag = p;

            _galleryGroup.Items.Add(item);
        }
コード例 #12
0
        public void AddItem(Damany.Imaging.Common.Portrait item)
        {
            if (InvokeRequired)
            {
                Action<Damany.Imaging.Common.Portrait> action = this.AddItem;
                this.BeginInvoke(action, item);
                return;
            }

            this.faceImageList.Images.Add(item.GetIpl().ToBitmap());

            var lvi = new ListViewItem
            {
                Tag = item,
                Text = item.CapturedAt.ToString(),
                ImageIndex = this.faceImageList.Images.Count - 1
            };

            //this.facesListView.Items.Add(lvi);
        }
コード例 #13
0
ファイル: MainForm.cs プロジェクト: dalinhuang/appcollection
 private static void UpdateCellProperty(Damany.RemoteImaging.Common.Frame frame, ConnectInfo connect)
 {
     connect.Target.Image = frame.image;
     connect.Target.OverlayText = connect.Source.Config.Name + " " + frame.timeStamp.ToString();
     connect.Target.EnableOverlayText = true;
 }
コード例 #14
0
 public void AddFace(Damany.Imaging.Common.Portrait p)
 {
     var bmp = p.GetIpl().ToBitmap();
     this.facesList.Images.Add(bmp);
     string text = p.CapturedAt.ToString();
     ListViewItem item = new ListViewItem()
     {
         Tag = p,
         Text = text,
         ImageIndex = this.facesList.Images.Count - 1,
     };
     this.facesListView.Items.Add(item);
 }
コード例 #15
0
 public void HandlePortrait(Damany.Imaging.Common.Portrait portrait)
 {
 }
コード例 #16
0
        private void CompareFace(
            Damany.Util.DateTimeRange range,
            OpenCvSharp.IplImage targetImage, OpenCvSharp.CvRect rect)
        {
            try
            {
                IsRunning = true;

                targetImage.ROI = rect;
                int count = 0;

                var gray = targetImage.GetSub(rect).CvtToGray();
                var poi = new PersonOfInterest(targetImage, gray);
                var repo = new PersonOfInterest[] { poi };
                this._comparer.Load(repo.ToList());

                //foreach (var p in portraits)
                //{
                //    if (Exit)
                //    {
                //        break;
                //    }

                //    this.view.CurrentImage = p.GetIpl().ToBitmap();

                //    var colorImg = p.GetIpl();
                //    var imgFromRepository = colorImg.GetSub(p.FaceBounds).CvtToGray();

                //    var result = this._comparer.CompareTo(imgFromRepository);

                //    foreach (var repositoryCompareResult in result)
                //    {
                //        if (repositoryCompareResult.Similarity > Thresholds[ThresholdIndex])
                //        {
                //            count++;
                //            this.view.AddPortrait(p);
                //            this.view.SetStatusText(string.Format("检索到 {0} 个目标", count));
                //        }

                //    }
                //}

            }
            finally
            {
                IsRunning = false;

            }
        }
コード例 #17
0
 public IList<Portrait> GetPortraits(Damany.Util.DateTimeRange range)
 {
     var dtos = dataProvider.GetPortraits(range);
     var portraits = dtos.ToList().ConvertAll(dto => Mapper.Map<DAL.DTO.Portrait, Portrait>(dto));
     return portraits;
 }
コード例 #18
0
        private static string ObjToPathMapper(Damany.Imaging.Contracts.CapturedObject obj)
        {
            var relativePath = string.Format("{0}\\{1}\\{2}\\{3}\\{4}.jpg",
                obj.CapturedAt.Year,
                obj.CapturedAt.Month,
                obj.CapturedAt.Day,
                obj.CapturedAt.Hour,
                obj.Guid.ToString());

            return relativePath;
        }
コード例 #19
0
ファイル: FormRoi.cs プロジェクト: dalinhuang/appcollection
 void pb_FigureDrawn(object sender, Damany.Windows.Form.DrawFigureEventArgs e)
 {
     Roi = e.Rectangle;
 }
コード例 #20
0
        public IList<DTO.Portrait> GetPortraits(int cameraId, Damany.Util.DateTimeRange range)
        {
            var container = OpenContainer();

            var portraitQuery = from DTO.Portrait p in container
                                where p.CapturedAt >= range.From && p.CapturedAt <= range.To
                                select p;

            if (cameraId != -1)
            {
                portraitQuery = from p in portraitQuery
                                where p.SourceId == cameraId
                                select p;
            }

            return portraitQuery.ToList();
        }
コード例 #21
0
 private static void DeleteOutdatedFrame(Damany.Util.DateTimeRange range, UnitOfWork uow)
 {
     var cs = string.Format("CaptureTime >= '{0}' And CaptureTime < '{1}'", range.From, range.To);
     var c = DevExpress.Data.Filtering.CriteriaOperator.Parse(cs);
     var frames = new XPCollection<Damany.PortraitCapturer.DAL.DTO.Frame>(uow, c);
     uow.Delete(frames);
 }
コード例 #22
0
        public void AddPortrait(Damany.Imaging.Common.Portrait p)
        {
            if (this.InvokeRequired)
            {
                Action<Damany.Imaging.Common.Portrait> action
                    = this.AddPortrait;

                this.BeginInvoke(action, p);
                return;
            }

            this.imageList1.Images.Add(p.GetIpl().ToBitmap());

            var item = new ListViewItem();
            item.Text = (_manager.GetName(p.DeviceId) ?? string.Empty) + " " + p.CapturedAt.ToString();
            item.ImageIndex = this.imageList1.Images.Count - 1;

            p.Dispose();
        }
コード例 #23
0
ファイル: LicensePlateParser.cs プロジェクト: vanan08/damany
 public bool CanParse(Damany.EPolice.Networking.Packets.BinaryPacket binaryPacket)
 {
     return ((uint)binaryPacket.Tag) == (uint)Packets.PacketType.LicensePlate;
 }
コード例 #24
0
 public IList<Frame> GetFrames(Damany.Util.DateTimeRange range)
 {
     var dtos = dataProvider.GetFrames(range);
     var frames = dtos.ToList().ConvertAll( dto => Mapper.Map<DAL.DTO.Frame, Frame>(dto) );
     return frames;
 }
コード例 #25
0
ファイル: LicensePlateParser.cs プロジェクト: vanan08/damany
 public void Parse(Damany.EPolice.Networking.Packets.BinaryPacket binaryPacket)
 {
     this.packet = this.Parse(binaryPacket.PayLoadBuffer);
 }