Exemplo n.º 1
0
def find_centroid(contour) -> Location:
    m = cv.moments(contour)
    if (m == None or m['m00'] == 0):
        return Location(0, 0)

    cx = int(m['m10'] / m['m00'])
    cy = int(m['m01'] / m['m00'])
    return Location(cx, cy)
Exemplo n.º 2
0
    def __find_lines(self):
        seed_point = Location(self.seed_center_x, 0)
        tmp_contour_infos = []
        for c in self.root_contours:
            # determine the most extreme points along the contour
            extLeft = Location.from_tuple(tuple(c[c[:, :, 0].argmin()][0]))
            extRight = Location.from_tuple(tuple(c[c[:, :, 0].argmax()][0]))
            extTop = Location.from_tuple(tuple(c[c[:, :, 1].argmin()][0]))
            extBot = Location.from_tuple(tuple(c[c[:, :, 1].argmax()][0]))

            # cv.circle(self.root_img, tuple(extLeft), 8, (0, 0, 255), -1)
            # cv.circle(self.root_img, tuple(extRight), 8, (0, 255, 0), -1)
            # cv.circle(self.root_img, tuple(extTop), 8, (255, 0, 0), -1)
            # cv.circle(self.root_img, tuple(extBot), 8, (255, 255, 0), -1)

            averaged_extremes = extLeft.average(extRight).average(
                extTop).average(extBot)

            cv.circle(self.root_img, tuple(averaged_extremes), 8, (0, 0, 0),
                      -1)

            seed_line = Line(seed_point, averaged_extremes)
            contour_line = Line(extTop, extBot)

            # cv.line(self.root_img, tuple(extTop), tuple(extBot), (200, 200, 200), thickness=3)

            if (contour_line.distance(seed_point) < self.height):
                contour_info = ContourInfo(contour_line, seed_line)
                tmp_contour_infos.append(contour_info)

        tmp_combined_infos = []

        for info in tmp_contour_infos:
            line: Line = info.contour_line
            matched: bool = False
            for other_info in tmp_contour_infos:
                other_line: Line = other_info.contour_line

                dist = line.distance(other_line.point1)
                v_slope = abs(other_line._slope() - line._slope())
                if v_slope < (self.height /
                              self.width) and dist < self.width / 20:
                    matched = True
                    tmp_combined_infos.append(info.average_contour(other_info))

            if (not matched):
                tmp_combined_infos.append(info)

        for info in tmp_combined_infos:
            self.root_lines.append(info.seed_line)
Exemplo n.º 3
0
 def add(cls, userId, cityId, lat, lon):
     from entities.location import Location
     locationId = Location.add(lat, lon)
     cls.insert_tuple('Address', ['userId', 'cityId', 'locationId'],
                      [userId, cityId, locationId])
     tbl = cls.select_tuples('Address', ['locationId'], [locationId])
     return tbl[-1][3]  # addressId
Exemplo n.º 4
0
 def search_shops(self, name='', addressId=None, categoryId=None):
     af = ''
     cf = ''
     if addressId is not None:
         from entities.address import Address
         from entities.location import Location
         li = Address(addressId).locationId
         loc = Location(li)
         af = f' AND ABS(lat - {loc.lat}) < 100 AND ABS(lon - {loc.lon}) < 100'
     if categoryId is not None:
         cf = f' AND C.categoryId = {categoryId}'
     tbl = User.exe_query("SELECT DISTINCT S.shopId FROM Shop S JOIN Address A ON S.addressId = A.addressId "
                          "JOIN Location L ON A.locationId = L.locationId "
                          "JOIN Food F On S.shopId = F.shopId "
                          "JOIN Category C ON F.categoryId = C.categoryId "
                          f"WHERE S.name LIKE '%{name}%'{af}{cf};")
     return [x[0] for x in tbl]  # list of shopIds
Exemplo n.º 5
0
    def draw_entire_width(self, mat):
        print('[Drawing line]: %s' % (self.__str__()))
        h, w = mat.shape[:2]
        m = self._slope()
        b = self._b()

        left_point = Location(-1, -1)
        right_point = Location(-1, -1)

        left_point.x = 0
        left_point.y = b

        right_point.x = w
        right_point.y = m * right_point.x + b

        cv.line(mat,
                tuple(left_point),
                tuple(right_point), (0, 0, 255),
                thickness=2)
Exemplo n.º 6
0
def get_all_locations():
    global full_location_list
    if full_location_list is None:
        conn = get_connection()
        cursor = conn.cursor()

        cursor.execute("select * from location")
        location_list = cursor.fetchall()

        locations = []

        for location in location_list:
            locations.append(
                Location(location[0], location[1], location[2].strip()))

        cursor.close()
        full_location_list = locations
    return full_location_list
Exemplo n.º 7
0
    def process_line_for_db(line):
        address = unidecode.unidecode(line[4])
        if address == 'N/A' or len(address) <= 0:
            return None, None, None

        if address in locations.keys():
            location_id = locations[address]
        else:
            location_id = uuid.uuid4()
        location = Location(id=location_id, address=address, city_id=city.id)

        product_size = get_size(line)
        if product_size == "NULL" or float(product_size) < 10 or product_size is nan:
            return None, None, None

        product_id = uuid.uuid4()
        product = Product(id=product_id,
                          product_type=get_product_type(line),
                          furnish_type=get_furnish_type(line),
                          floor_number=get_floor_number(line),
                          number_of_floors=get_number_of_floors(line),
                          size=product_size,
                          year_of_construction=get_year(line),
                          location_id=location_id,
                          number_of_rooms=get_number_of_rooms(line))
        product_price = line[2]
        if product_price == "N/A":
            return None, None, None
        product_price = float(product_price) * 1000

        history_date = get_date(line)
        if history_date is None:
            return None, None, None

        history_id = uuid.uuid4()
        history = ProductHistory(id=history_id,
                                 product_id=product_id,
                                 date=history_date,
                                 price=product_price,
                                 currency_type="EUR")

        return product, history, location
Exemplo n.º 8
0
class List_first_default():
    list_name = "Основной"
    spy_location = Location("Шпион",
                            DIRECTORY_PATH + "images/first_default/spy.jpg")
    list_of_locations = [
        Location("База террористов",
                 DIRECTORY_PATH + "images/first_default/terror_base.jpg"),
        Location("Банк", DIRECTORY_PATH + "images/first_default/bank.jpg"),
        Location("Больница",
                 DIRECTORY_PATH + "images/first_default/hospital.jpg"),
        Location("Киностудия",
                 DIRECTORY_PATH + "images/first_default/kinostudio.jpg"),
        Location("Корпоратив",
                 DIRECTORY_PATH + "images/first_default/corporate_disco.jpg"),
        Location("Киностудия",
                 DIRECTORY_PATH + "images/first_default/kinostudio.jpg"),
        Location("Партизанский отряд",
                 DIRECTORY_PATH + "images/first_default/partisane_team.jpg"),
        Location("Пассажирский поезд",
                 DIRECTORY_PATH + "images/first_default/train.jpg"),
        Location("Пиратский корабль",
                 DIRECTORY_PATH + "images/first_default/pirate_ship.jpg"),
        Location("Полярная станция",
                 DIRECTORY_PATH + "images/first_default/polar_station.jpg"),
        Location("Посольство",
                 DIRECTORY_PATH + "images/first_default/embassy.jpg"),
        Location("Ресторан",
                 DIRECTORY_PATH + "images/first_default/restouran.jpg"),
        Location("Супермаркет",
                 DIRECTORY_PATH + "images/first_default/supermarket.jpg"),
        Location("Театр", DIRECTORY_PATH + "images/first_default/teather.jpg"),
        Location("Университет",
                 DIRECTORY_PATH + "images/first_default/university.jpg"),
        Location("Воинская часть",
                 DIRECTORY_PATH + "images/first_default/military_union.jpg"),
        Location("Войско крестоносцев",
                 DIRECTORY_PATH + "images/first_default/crusaders.jpg"),
        Location("Казино", DIRECTORY_PATH + "images/first_default/casino.jpg"),
        Location("Океанский лайнер",
                 DIRECTORY_PATH + "images/first_default/ship.jpg"),
        Location("Орбитальная станция",
                 DIRECTORY_PATH + "images/first_default/space_station.jpg"),
        Location("Отель", DIRECTORY_PATH + "images/first_default/hotel.jpg"),
        Location("Пляж", DIRECTORY_PATH + "images/first_default/beach.jpg"),
        Location("Подводная лодка",
                 DIRECTORY_PATH + "images/first_default/underwater_sheep.jpg"),
        Location("Полицейский участок",
                 DIRECTORY_PATH + "images/first_default/police.jpg"),
        Location("Самолет",
                 DIRECTORY_PATH + "images/first_default/airplane.jpg"),
        Location("Спа-салон", DIRECTORY_PATH + "images/first_default/spa.jpg"),
        Location("СТО", DIRECTORY_PATH + "images/first_default/sto.jpg"),
        Location("Церковь",
                 DIRECTORY_PATH + "images/first_default/chirch.jpg"),
        Location("Цирк", DIRECTORY_PATH + "images/first_default/circus.jpg"),
        Location("Школа", DIRECTORY_PATH + "images/first_default/school.jpg")
    ]
Exemplo n.º 9
0
class List_second_dlc():
    list_name = "Дополнительный"
    spy_location = Location("Шпион", DIRECTORY_PATH + "images/first_default/spy.jpg")
    list_of_locations = [Location("Стрип-клуб", DIRECTORY_PATH + "images/second_dlc/strip.jpg"),
                         Location("Зона 51", DIRECTORY_PATH + "images/second_dlc/area_51.jpg"),
                         Location("Зоопарк", DIRECTORY_PATH + "images/second_dlc/zoopark.jpg"),
                         Location("Стройплощадка", DIRECTORY_PATH + "images/second_dlc/stroika.jpg"),
                         Location("Тюрьма", DIRECTORY_PATH + "images/second_dlc/aye.jpg"),
                         Location("Ночной клуб", DIRECTORY_PATH + "images/second_dlc/club.jpg"),
                         Location("Бар", DIRECTORY_PATH + "images/second_dlc/bar.jpg"),
                         Location("Метро", DIRECTORY_PATH + "images/second_dlc/metro.jpg"),
                         Location("Кинотеатр", DIRECTORY_PATH + "images/second_dlc/kino.jpg"),
                         Location("Кузница", DIRECTORY_PATH + "images/second_dlc/kyznica.jpg"),
                         Location("Музей", DIRECTORY_PATH + "images/second_dlc/museim.jpg"),
                         Location("Лес", DIRECTORY_PATH + "images/second_dlc/forest.jpg"),
                         Location("Спортзал", DIRECTORY_PATH + "images/second_dlc/gym.jpg"),
                         Location("Столовая", DIRECTORY_PATH + "images/second_dlc/stolovka.jpg"),
                         Location("ЗАГС", DIRECTORY_PATH + "images/second_dlc/zags.jpg"),
                         Location("Суд", DIRECTORY_PATH + "images/second_dlc/syd.jpg"),
                         Location("Свалка", DIRECTORY_PATH + "images/second_dlc/pomoika.jpg"),
                         Location("Рок-концерт", DIRECTORY_PATH + "images/second_dlc/consert.jpg"),
                         Location("Псих-больница", DIRECTORY_PATH + "images/second_dlc/psih.jpg"),
                         Location("Пустыня", DIRECTORY_PATH + "images/second_dlc/duna.jpg"),
                         Location("Рай", DIRECTORY_PATH + "images/second_dlc/heaven.jpg"),
                         Location("Ад", DIRECTORY_PATH + "images/second_dlc/hell.jpg"),
                         Location("Чернобыль", DIRECTORY_PATH + "images/second_dlc/stalker.jpg"),
                         Location("Завод", DIRECTORY_PATH + "images/second_dlc/zavod.jpg"),
                         Location("Худ. мастерская", DIRECTORY_PATH + "images/second_dlc/art_room.jpg"),
                         Location("Ферма", DIRECTORY_PATH + "images/second_dlc/rancho.jpg"),
                         Location("Кладбище", DIRECTORY_PATH + "images/second_dlc/grave.jpg"),
                         Location("Болото", DIRECTORY_PATH + "images/second_dlc/boloto.jpg"),
                         Location("Замок", DIRECTORY_PATH + "images/second_dlc/castle.jpg"),
                         Location("Баня", DIRECTORY_PATH + "images/second_dlc/banya.jpg")]
Exemplo n.º 10
0
 def pointAtY(self, y: float) -> Location:
     x = (y / self._slope()) - self._b()
     if (self._slope() >= get_cv_max_int()):
         x = y
     return Location(x, y)
Exemplo n.º 11
0
 def pointAtX(self, x: float) -> Location:
     y = self._slope() * x + self._b()
     if (self._slope() >= get_cv_max_int()):
         y = x
     return Location(x, y)
Exemplo n.º 12
0
print(os.getcwd())
import app
from app.config import *
from app.db import *
from app.cli.cli_manager import *

app.boot()

from entities.user import User
from entities.location import Location

# u = User()
# u.name = "asd"
# u.password="******"
# u.locations = [
#    Location(name="test location"),
#    Location(name="test location"),
#    Location(name="test location")
# ]
# u.save()

# print(u.id)
# print(u.render())

l = Location(name="test")
l.user = User(name="asd", password="******")
l.save()

l = Location(name="test")
l.user = User.create(name="asd", password="******")
l.save()