예제 #1
0
        public static Bitmap getEdgeDetectedImage(this Bitmap src, Filter_Type filter_type)
        {
            Bitmap resizedBitmap = Bitmap.CreateScaledBitmap(src, (src.Width * 256) / src.Height, 256, true);

            OpenCV.Core.Mat resizedMat = new OpenCV.Core.Mat();
            OpenCV.Android.Utils.BitmapToMat(resizedBitmap, resizedMat);

            OpenCV.Core.Mat gaussianMat = new OpenCV.Core.Mat();
            Imgproc.GaussianBlur(resizedMat, gaussianMat, new OpenCV.Core.Size(3, 3), 0, 0);


            OpenCV.Core.Mat grayMat = new OpenCV.Core.Mat();
            Imgproc.CvtColor(gaussianMat, grayMat, Imgproc.ColorRgba2gray, 2);

            OpenCV.Core.Mat edgeDetectedMat = new OpenCV.Core.Mat();
            if (filter_type == Filter_Type.CANNY)
            {
                Imgproc.Canny(grayMat, edgeDetectedMat, 100, 100);
            }
            else
            {
                OpenCV.Core.Mat sobelMat = new OpenCV.Core.Mat();
                Imgproc.Sobel(grayMat, sobelMat, CvType.Cv8u, 1, 1);
                Core.ConvertScaleAbs(sobelMat, edgeDetectedMat, 6, 1);
            }


            Bitmap resultBitmap = Bitmap.CreateBitmap(resizedBitmap.Width, resizedBitmap.Height, Bitmap.Config.Argb8888);

            OpenCV.Android.Utils.MatToBitmap(edgeDetectedMat, resultBitmap);

            return(resultBitmap);
        }
예제 #2
0
파일: BTI.cs 프로젝트: Cuyler36/GCNToolKit
        public BTI_Header()
        {
            Image_Format = ImageFormat.C8;
            Enable_Alpha = 0x02;
            WrapS        = Wrap_Mode.Clamp_Edge;
            WrapT        = Wrap_Mode.Clamp_Edge;

            Unknown1                  = 0x01; // Appears to be one in most of the Animal Crossing files
            Palette_Format            = PixelFormat.RGB5A3;
            BorderColor               = 0;
            Minification_Filter_Type  = Filter_Type.Nearest;
            Magnification_Filter_Type = Filter_Type.Nearest;
            MinLod       = 0;
            MaxLod       = 0;
            Mipmap_Count = 1;
            Unknown2     = 0;
            LodBias      = 0;
        }
예제 #3
0
파일: BTI.cs 프로젝트: Cuyler36/GCNToolKit
 public BTI_Header(byte[] Data)
 {
     Image_Format              = (ImageFormat)Data[0];
     Enable_Alpha              = Data[1];
     Width                     = (ushort)((Data[2] << 8) | Data[3]);
     Height                    = (ushort)((Data[4] << 8) | Data[5]);
     WrapS                     = (Wrap_Mode)Data[6];
     WrapT                     = (Wrap_Mode)Data[7];
     Unknown1                  = Data[8];
     Palette_Format            = (PixelFormat)Data[9];
     Palette_Entry_Count       = (ushort)((Data[10] << 8) | Data[11]);
     Palette_Offset            = (uint)((Data[12] << 24) | (Data[13] << 16) | (Data[14] << 8) | Data[15]);
     BorderColor               = (uint)((Data[16] << 24) | (Data[17] << 16) | (Data[18] << 8) | Data[19]);
     Minification_Filter_Type  = (Filter_Type)Data[20];
     Magnification_Filter_Type = (Filter_Type)Data[21];
     MinLod                    = Data[22];
     MaxLod                    = Data[23];
     Mipmap_Count              = Data[24];
     Unknown2                  = Data[25];
     LodBias                   = (ushort)((Data[26] << 8) | Data[27]);
     Image_Data_Offset         = (uint)((Data[28] << 24) | (Data[29] << 16) | (Data[30] << 8) | Data[31]);
 }
예제 #4
0
 public FilterAttribute(Filter_Type _type, string operatorFormat = "")
 {
     _FilterType     = _type;
     _operatorFormat = operatorFormat;
 }