コード例 #1
0
 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
コード例 #2
0
    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