public void PaintSlots(String parkingName, ref Hashtable parkinglist, int counter, Bitmap bmModel, Bitmap bmFrame, Bitmap[] SlotsFrames, Bitmap[] ParkingSlotsModel, Point[] ParkingPoint, Graphics graphics, parkingSlot parkings) { for (int i = 0; i < (counter); i++) { parkings.QuadrilateralSlotsTransformation(ParkingPoint, ParkingSlotsModel, bmModel, i); // parkings.QuadrilateralSlotsTransformation(ParkingPoint, SlotsFrames, bmFrame, i); Subtract filter = new Subtract(ParkingSlotsModel[i]); Bitmap resultImage = filter.Apply(SlotsFrames[i]); Boolean boolean = false; int valueToCompare = 130; boolean = parkings.emptyOrFull(resultImage, valueToCompare); if (boolean) { int cont = i + 1; //MessageBox.Show(parkingName + " full lot #" + cont); parkinglist[parkingName + cont] = "Ocupado"; Color color = new Color(); color = Color.FromArgb(0x30FF0000); Point[] parkingLot = { ParkingPoint[0 + (4 * i)], ParkingPoint[1 + (4 * i)], ParkingPoint[2 + (4 * i)], ParkingPoint[3 + (4 * i)] }; graphics.DrawPolygon(new Pen(Color.Gray, 3), parkingLot); graphics.FillPolygon(new SolidBrush(color), parkingLot); } else { int resu = i + 1; parkinglist[parkingName + resu] = "Vacio"; Point[] parkingLot = { ParkingPoint[0 + (4 * i)], ParkingPoint[1 + (4 * i)], ParkingPoint[2 + (4 * i)], ParkingPoint[3 + (4 * i)] }; graphics.DrawPolygon(new Pen(Color.Gray, 3), parkingLot); graphics.FillPolygon(new SolidBrush(Color.FromArgb(0x3000ff00)), parkingLot); } } }