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); }
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; }
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]); }
public FilterAttribute(Filter_Type _type, string operatorFormat = "") { _FilterType = _type; _operatorFormat = operatorFormat; }