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)
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)
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
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
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)
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
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
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") ]
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")]
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)
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)
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()