def __replace_color_slow(self, ply_data): """ Перемещает цвет пикселя из растра в сопоставленную по координатам точку из облака точек без ускорения numba \n Для более быстрого переноса использовать "replace_color_from_one_channel_parallel" """ i = 0 count_matched = 0 data_count = ply_data[Element.VERTEX.value].count progress = Progress(data_count) band_count = self.raster.RasterCount if band_count == 1: write_color = self.__write_color_from_one_channel_raster else: write_color = self.__write_color_from_three_channel_raster while i < data_count: cloud_point_x = ply_data[Element.VERTEX.value].data[Property.X.value][i] cloud_point_y = ply_data[Element.VERTEX.value].data[Property.Y.value][i] x, y = self.__find_appropriate_pixel(cloud_point_x, cloud_point_y) if x != PixelPosition.NOT_MATCHED.value and y != PixelPosition.NOT_MATCHED.value: count_matched += 1 write_color(ply_data, i, x, y) progress.step() i += 1 progress.reset() print('Всего точек:', data_count) count_mismatched = data_count - count_matched return count_matched, count_mismatched
def __check_match_slow(self, ply_data): """ Проверка совпадения координат из облака точек с координатами растра без ускорения numba \n Для более быстрого просчёта использовать "check_match_fast" """ i = 0 count_matched = 0 data_count = ply_data[Element.VERTEX.value].count progress = Progress(data_count) while i < data_count: cloud_point_x = ply_data[Element.VERTEX.value].data[Property.X.value][i] cloud_point_y = ply_data[Element.VERTEX.value].data[Property.Y.value][i] x, y = self.__find_appropriate_pixel(cloud_point_x, cloud_point_y) if x != PixelPosition.NOT_MATCHED.value and y != PixelPosition.NOT_MATCHED.value: count_matched += 1 progress.step() i += 1 progress.reset() # print_time('Всего точек:', data_count) count_mismatched = data_count - count_matched return count_matched, count_mismatched