Ejemplo n.º 1
0
        public void writeEverything(string folderName, double frameLength)
        {
            if (folderName == "")
            {
                return;
            }

            string filePath = SIBIPATH + frameLength.ToString() + "//" + folderName;

            Directory.CreateDirectory(filePath);
            String upperPointFilePath = Path.Combine(filePath, "Data Polar Upper Point.csv");
            String headPointFilePath  = Path.Combine(filePath, "Data Polar Head Point.csv");

            int bitmapNumber = 1;

            StringBuilder upperStringBuilder = new StringBuilder();
            StringBuilder headStringBuilder  = new StringBuilder();

            List <string> shoulderElbowLeftYXs  = new List <string>();
            List <string> shoulderElbowLeftZXs  = new List <string>();
            List <string> elbowHandLeftYXs      = new List <string>();
            List <string> elbowHandLeftZXs      = new List <string>();
            List <string> shoulderElbowRightYXs = new List <string>();
            List <string> shoulderElbowRightZXs = new List <string>();
            List <string> elbowHandRightYXs     = new List <string>();
            List <string> elbowHandRightZXs     = new List <string>();

            List <string> headElbowLeftYXs  = new List <string>();
            List <string> headElbowLeftZXs  = new List <string>();
            List <string> headHandLeftYXs   = new List <string>();
            List <string> headHandLeftZXs   = new List <string>();
            List <string> headElbowRightYXs = new List <string>();
            List <string> headElbowRightZXs = new List <string>();
            List <string> headHandRightYXs  = new List <string>();
            List <string> headHandRightZXs  = new List <string>();

            double dataCount = (double)wordDataList.Count;
            double skip      = dataCount / frameLength;
            double dataIndex = 0;

            //skip = len / len_sample;
            //idx = 1;
            //for ii=1:skip:len,
            //res(idx) = input_wave((round(ii)));
            //idx = idx+1;
            //end

            while (Math.Round(dataIndex) < wordDataList.Count)
            {
                WordDataContainer data = wordDataList[Convert.ToInt32(Math.Floor(dataIndex))];
                dataIndex += skip;

                Joint handLeft       = data.skeletonData.Joints[JointType.HandLeft];
                Joint handRight      = data.skeletonData.Joints[JointType.HandRight];
                Joint elbowLeft      = data.skeletonData.Joints[JointType.ElbowLeft];
                Joint elbowRight     = data.skeletonData.Joints[JointType.ElbowRight];
                Joint shoulderLeft   = data.skeletonData.Joints[JointType.ShoulderLeft];
                Joint shoulderRight  = data.skeletonData.Joints[JointType.ShoulderRight];
                Joint shoulderCenter = data.skeletonData.Joints[JointType.ShoulderCenter];
                Joint head           = data.skeletonData.Joints[JointType.Head];

                #region UpperPoint
                SA.get_rad_polar(elbowLeft.Position, shoulderLeft.Position);
                shoulderElbowLeftYXs.Add(SA.degreeY.ToString());
                shoulderElbowLeftZXs.Add(SA.degreeZ.ToString());

                SA.get_rad_polar(handLeft.Position, elbowLeft.Position);
                elbowHandLeftYXs.Add(SA.degreeY.ToString());
                elbowHandLeftZXs.Add(SA.degreeZ.ToString());

                SA.get_rad_polar(elbowRight.Position, shoulderRight.Position);
                shoulderElbowRightYXs.Add(SA.degreeY.ToString());
                shoulderElbowRightZXs.Add(SA.degreeZ.ToString());

                SA.get_rad_polar(handRight.Position, elbowRight.Position);
                elbowHandRightYXs.Add(SA.degreeY.ToString());
                elbowHandRightZXs.Add(SA.degreeZ.ToString());

                #endregion

                #region HeadPoint
                SA.get_rad_polar(elbowLeft.Position, shoulderCenter.Position);
                headElbowLeftYXs.Add(SA.degreeY.ToString());
                headElbowLeftZXs.Add(SA.degreeZ.ToString());

                SA.get_rad_polar(handLeft.Position, shoulderCenter.Position);
                headHandLeftYXs.Add(SA.degreeY.ToString());
                headHandLeftZXs.Add(SA.degreeZ.ToString());

                SA.get_rad_polar(elbowRight.Position, shoulderCenter.Position);
                headElbowRightYXs.Add(SA.degreeY.ToString());
                headElbowRightZXs.Add(SA.degreeZ.ToString());

                SA.get_rad_polar(handRight.Position, shoulderCenter.Position);
                headHandRightYXs.Add(SA.degreeY.ToString());
                headHandRightZXs.Add(SA.degreeZ.ToString());
                #endregion

                #region Bitmap
                try
                {
                    BitmapEncoder bitmapEncoder = new PngBitmapEncoder();
                    string        path;

                    bitmapEncoder.Frames.Clear();
                    bitmapEncoder.Frames.Add(BitmapFrame.Create(data.colorLeftBitmapData.SIBIBitmapResize(120, 120)));
                    path = Path.Combine(filePath, folderName + "-LeftColor-" + bitmapNumber + ".png");
                    using (FileStream fs = new FileStream(path, FileMode.Create))
                    {
                        bitmapEncoder.Save(fs);
                    }

                    bitmapEncoder = new PngBitmapEncoder();
                    bitmapEncoder.Frames.Clear();
                    bitmapEncoder.Frames.Add(BitmapFrame.Create(data.colorRightBitmapData.SIBIBitmapResize(120, 120)));
                    path = Path.Combine(filePath, folderName + "-RightColor-" + bitmapNumber + ".png");
                    using (FileStream fs = new FileStream(path, FileMode.Create))
                    {
                        bitmapEncoder.Save(fs);
                    }

                    bitmapEncoder = new PngBitmapEncoder();
                    bitmapEncoder.Frames.Clear();;
                    bitmapEncoder.Frames.Add(BitmapFrame.Create(data.depthLeftBitmapData.SIBIBitmapResize(120, 120)));
                    path = Path.Combine(filePath, folderName + "-LeftDepth-" + bitmapNumber + ".png");
                    using (FileStream fs = new FileStream(path, FileMode.Create))
                    {
                        bitmapEncoder.Save(fs);
                    }

                    bitmapEncoder = new PngBitmapEncoder();
                    bitmapEncoder.Frames.Clear();
                    bitmapEncoder.Frames.Add(BitmapFrame.Create(data.depthRightBitmapData.SIBIBitmapResize(120, 120)));
                    path = Path.Combine(filePath, folderName + "-RightDepth-" + bitmapNumber + ".png");
                    using (FileStream fs = new FileStream(path, FileMode.Create))
                    {
                        bitmapEncoder.Save(fs);
                    }
                }
                catch (IOException e) { Console.WriteLine(e.Message); }
                #endregion

                bitmapNumber++;
            }

            headStringBuilder.AppendLine(String.Join(DELIMITER, headElbowLeftYXs.ToArray()));
            headStringBuilder.AppendLine(String.Join(DELIMITER, headElbowLeftZXs.ToArray()));
            headStringBuilder.AppendLine(String.Join(DELIMITER, headHandLeftYXs.ToArray()));
            headStringBuilder.AppendLine(String.Join(DELIMITER, headHandLeftZXs.ToArray()));
            headStringBuilder.AppendLine(String.Join(DELIMITER, headElbowRightYXs.ToArray()));
            headStringBuilder.AppendLine(String.Join(DELIMITER, headElbowRightZXs.ToArray()));
            headStringBuilder.AppendLine(String.Join(DELIMITER, headHandRightYXs.ToArray()));
            headStringBuilder.AppendLine(String.Join(DELIMITER, headHandRightZXs.ToArray()));

            upperStringBuilder.AppendLine(String.Join(DELIMITER, shoulderElbowLeftYXs.ToArray()));
            upperStringBuilder.AppendLine(String.Join(DELIMITER, shoulderElbowLeftZXs.ToArray()));
            upperStringBuilder.AppendLine(String.Join(DELIMITER, elbowHandLeftYXs.ToArray()));
            upperStringBuilder.AppendLine(String.Join(DELIMITER, elbowHandLeftZXs.ToArray()));
            upperStringBuilder.AppendLine(String.Join(DELIMITER, shoulderElbowRightYXs.ToArray()));
            upperStringBuilder.AppendLine(String.Join(DELIMITER, shoulderElbowRightZXs.ToArray()));
            upperStringBuilder.AppendLine(String.Join(DELIMITER, elbowHandRightYXs.ToArray()));
            upperStringBuilder.AppendLine(String.Join(DELIMITER, elbowHandRightZXs.ToArray()));

            File.AppendAllText(upperPointFilePath, upperStringBuilder.ToString());
            File.AppendAllText(headPointFilePath, headStringBuilder.ToString());
        }
Ejemplo n.º 2
0
 public void addWordData(WordDataContainer container)
 {
     wordDataList.Add(container);
 }