Spec-Zone.ru › PointCloudLibrary

Реализация сегментации GrabCut в статье "GrabCut — Interactive Foreground Extraction using Iterated Graph Cuts" Карстена Ротера, Владимира Коломникова и Эндрю Блейка. Подробнее...

#include <pcl/segmentation/grabcut_segmentation.h>

Inheritance graph
[легенда]
Collaboration graph
[легенда]

Классы

struct NLinks

Общедоступные типы

using KdTree = pcl::search::Search< PointT >
using KdTreePtr = typename KdTree::Ptr
using PointCloudConstPtr = typename PCLBase< PointT >::PointCloudConstPtr
using PointCloudPtr = typename PCLBase< PointT >::PointCloudPtr
- Общедоступные типы, унаследованные от pcl::PCLBase< PointT >
using PointCloud = pcl::PointCloud< PointT >
using PointCloudPtr = typename PointCloud::Ptr
using PointCloudConstPtr = typename PointCloud::ConstPtr
using PointIndicesPtr = PointIndices::Ptr
using PointIndicesConstPtr = PointIndices::ConstPtr

Публичные члены-функции

GrabCut (std::uint32_t K=5, float lambda=50.f)
Конструктор. Подробнее...
~GrabCut () override=default
Деструктор. Подробнее...
void setInputCloud (const PointCloudConstPtr &cloud) override
Укажите указатель на входные данные. Подробнее...
void setBackgroundPoints (const PointCloudConstPtr &background_points)
Установить фоновые точки, точки переднего плана = точки \ фоновые точки. Подробнее...
void setBackgroundPointsIndices (int x1, int y1, int x2, int y2)
Установить индексы заднего плана, индексы переднего плана = индексы \ индексы заднего плана. Подробнее...
void setBackgroundPointsIndices (const PointIndicesConstPtr &indices)
Установить индексы заднего плана, индексы переднего плана = индексы \ индексы заднего плана. Подробнее...
virtual void refine ()
Выполнить уточнение Grabcut на жёсткой сегментации. Подробнее...
virtual int refineOnce ()
float getLambda ()
void setLambda (float lambda)
Установить параметр лямбда на заданное пользователем значение. Подробнее...
std::uint32_t getK ()
void setK (std::uint32_t K)
Установить параметр K на заданное пользователем значение. Подробнее...
void setSearchMethod (const KdTreePtr &tree)
Указать указатель на объект поиска. Подробнее...
KdTreePtr getSearchMethod ()
Получить указатель на метод поиска, который используется. Подробнее...
void setNumberOfNeighbours (int nb_neighbours)
Позволяет установить количество соседей для поиска. Подробнее...
int getNumberOfNeighbours () const
Возвращает количество соседей для поиска. Подробнее...
void extract (std::vector< pcl::PointIndices > &clusters)
Этот метод запускает алгоритм сегментации и возвращает кластеры, полученные во время сегментации. Подробнее...
- Публичные методы, унаследованные от pcl::PCLBase< PointT >
PCLBase ()
Пустой конструктор. Подробнее...
PCLBase (const PCLBase &base)
Конструктор копирования. Подробнее...
virtual ~PCLBase ()=default
Деструктор. Подробнее...
PointCloudConstPtr const getInputCloud () const
Получение указателя на набор данных входных точек. Подробнее...
virtual void setIndices (const IndicesPtr &indices)
Предоставить указатель на вектор индексов, представляющий входные данные. Подробнее...
virtual void setIndices (const IndicesConstPtr &indices)
Предоставить указатель на вектор индексов, представляющий входные данные. Подробнее...
virtual void setIndices (const PointIndicesConstPtr &indices)
Предоставить указатель на вектор индексов, представляющий входные данные. Подробнее...
virtual void setIndices (std::size_t row_start, std::size_t col_start, std::size_t nb_rows, std::size_t nb_cols)
Установить индексы для точек, расположенных в области интереса облака точек. Подробнее...
IndicesPtr getIndices ()
Получить указатель на вектор индексов, используемых. Подробнее...
IndicesConstPtr const getIndices () const
Получить указатель на вектор индексов, используемых. Подробнее...
const PointT & operator[] (std::size_t pos) const
Переопределить PointCloud operator[] для сокращения кода. Подробнее...

Защищенные типы

using vertex_descriptor = pcl::segmentation::grabcut::BoykovKolmogorov::vertex_descriptor

Защищенные члены-функции

bool initCompute ()
void computeBetaOrganized ()
Вычисление beta из изображения. Подробнее...
void computeBetaNonOrganized ()
Вычисление beta из облака точек. Подробнее...
void computeL ()
Вычисление параметра L из заданного lambda. Подробнее...
void computeNLinksOrganized ()
Вычисление NLinks из изображения. Подробнее...
void computeNLinksNonOrganized ()
Вычисление NLinks из облака точек. Подробнее...
void setTrimap (const PointIndicesConstPtr &indices, segmentation::grabcut::TrimapValue t)
Редактирование тримапа. Подробнее...
int updateHardSegmentation ()
virtual void fitGMMs ()
Подгонка многомерных гауссовых моделей. Подробнее...
void initGraph ()
Построение графа для GraphCut. Подробнее...
void addEdge (vertex_descriptor v1, vertex_descriptor v2, float capacity, float rev_capacity)
Добавить ребро в граф, граф должен быть ориентированным, поэтому мы добавляем ребро и его обратное. Подробнее...
void setTerminalWeights (vertex_descriptor v, float source_capacity, float sink_capacity)
Установить веса SOURCE --> v и v --> SINK. Подробнее...
bool isSource (vertex_descriptor v)
- Защищенные методы-члены, унаследованные от pcl::PCLBase< PointT >
bool initCompute ()
Этот метод должен вызываться перед началом фактического вычисления. Подробнее...
bool deinitCompute ()
Этот метод должен вызываться после завершения фактического вычисления. Подробнее...

Защищенные атрибуты

std::uint32_t width_
Ширина изображения Подробнее...
std::uint32_t height_
Высота изображения Подробнее...
std::uint32_t K_
Количество компонент GMM. Подробнее...
float lambda_
lambda = 50. Это значение было предложено в статье по GrabCut. Подробнее...
float beta_
beta = 1/2 * среднее значение квадратов расстояний цветов между всеми парами пикселей 8-соседних пикселей. Подробнее...
float L_
L = большое значение, чтобы принудительно назначить пиксель к фоновому или переднему плану. Подробнее...
KdTreePtr tree_
Указатель на объект пространственного поиска. Подробнее...
int nb_neighbours_
Количество соседей. Подробнее...
bool initialized_
инициализировано ли сегментирование Подробнее...
std::vector< NLinks > n_links_
Вычисленные веса N-связей. Подробнее...
segmentation::grabcut::Image::Ptr image_
Преобразованный вход. Подробнее...
std::vector< segmentation::grabcut::TrimapValue > trimap_
std::vector< std::size_t > GMM_component_
std::vector< segmentation::grabcut::SegmentationValue > hard_segmentation_
std::vector< float > soft_segmentation_
segmentation::grabcut::GMM background_GMM_
segmentation::grabcut::GMM foreground_GMM_
pcl::segmentation::grabcut::BoykovKolmogorov graph_
Граф для Graphcut. Подробнее...
std::vector< vertex_descriptor > graph_nodes_
Узлы графа. Подробнее...
- Защищенные атрибуты, унаследованные от pcl::PCLBase< PointT >
PointCloudConstPtr input_
Входной набор данных облака точек. Подробнее...
IndicesPtr indices_
Указатель на вектор индексов точек для использования. Подробнее...
bool use_indices_
Устанавливается в true, если используются индексы точек. Подробнее...
bool fake_indices_
Если не задан набор индексов, мы создаём набор фиктивных индексов, имитирующих входной PointCloud. Подробнее...

Подробное описание

шаблон<typename PointT>
класс pcl::GrabCut< PointT >

Реализация сегментации GrabCut в статье "GrabCut — Interactive Foreground Extraction using Iterated Graph Cuts" Карстена Ротера, Владимира Кольмогорова и Эндрю Блейка.

Автор
Джастин Талбот, jtalb.nosp@m.ot@s.nosp@m.tanfo.nosp@m.rd.e.nosp@m.du размещен в общественном достоянии, 2010
Низар Салем перенес в PCL и адаптировал исходный код.

Определение в строке 320 файла grabcut_segmentation.h.

Документация по переопределенным типам членов

KdTree

template<typename PointT >
using pcl::GrabCut< PointT >::KdTree = pcl::search::Search<PointT>

Определение в строке 323 файла grabcut_segmentation.h.

KdTreePtr

template<typename PointT >
using pcl::GrabCut< PointT >::KdTreePtr = typename KdTree::Ptr

Определение в строке 324 файла grabcut_segmentation.h.

PointCloudConstPtr

template<typename PointT >
using pcl::GrabCut< PointT >::PointCloudConstPtr = typename PCLBase<PointT>::PointCloudConstPtr

Определение в строке 325 файла grabcut_segmentation.h.

PointCloudPtr

template<typename PointT >
using pcl::GrabCut< PointT >::PointCloudPtr = typename PCLBase<PointT>::PointCloudPtr

Определение в строке 326 файла grabcut_segmentation.h.

vertex_descriptor

template<typename PointT >
using pcl::GrabCut< PointT >::vertex_descriptor = pcl::segmentation::grabcut::BoykovKolmogorov::vertex_descriptor
protected

Определение в строке 411 файла grabcut_segmentation.h.

Конструктор и деструктор

GrabCut()

template<typename PointT >
pcl::GrabCut< PointT >::GrabCut ( std::uint32_t K = 5,
float lambda = 50.f
)
inline

Конструктор.

Определение в строке 332 файла grabcut_segmentation.h.

~GrabCut()

template<typename PointT >
pcl::GrabCut< PointT >::~GrabCut ( )
overridedefault

Деструктор.

Документация по членам-функциям

addEdge()

template<typename PointT >
void pcl::GrabCut< PointT >::addEdge ( vertex_descriptor v1,
vertex_descriptor v2,
float capacity,
float rev_capacity
)
protected

Добавить ребро в граф, граф должен быть ориентирован, поэтому мы добавляем ребро и его обратное ребро.

Определение в строке 150 файла grabcut_segmentation.hpp.

computeBetaNonOrganized()

template<typename PointT >
void pcl::GrabCut< PointT >::computeBetaNonOrganized
protected

Вычислить бета из облака.

Определение в строке 387 файла grabcut_segmentation.hpp.

Ссылки на pcl::GrabCut< PointT >::NLinks::dists, pcl::GrabCut< PointT >::NLinks::indices, pcl::isFinite(), pcl::GrabCut< PointT >::NLinks::nb_links, pcl::squaredEuclideanDistance() и pcl::GrabCut< PointT >::NLinks::weights.

computeBetaOrganized()

template<typename PointT >
void pcl::GrabCut< PointT >::computeBetaOrganized
protected

Вычисление бета из изображения.

Определение в строке 426 файла grabcut_segmentation.hpp.

Ссылки на pcl::GrabCut< PointT >::NLinks::dists, pcl::GrabCut< PointT >::NLinks::indices, pcl::GrabCut< PointT >::NLinks::nb_links, pcl::squaredEuclideanDistance() и pcl::GrabCut< PointT >::NLinks::weights.

computeL()

template<typename PointT >
void pcl::GrabCut< PointT >::computeL
protected

Вычисление параметра L из заданного лямбда.

Определение в строке 496 файла grabcut_segmentation.hpp.

computeNLinksNonOrganized()

template<typename PointT >
void pcl::GrabCut< PointT >::computeNLinksNonOrganized
protected

Вычисление NLinks из облака точек.

Определение в строке 334 файла grabcut_segmentation.hpp.

Ссылки на pcl::GrabCut< PointT >::NLinks::dists, pcl::GrabCut< PointT >::NLinks::indices, pcl::GrabCut< PointT >::NLinks::nb_links и pcl::GrabCut< PointT >::NLinks::weights.

computeNLinksOrganized()

template<typename PointT >
void pcl::GrabCut< PointT >::computeNLinksOrganized
protected

Вычисление NLinks из изображения.

Определение в строке 360 файла grabcut_segmentation.hpp.

Ссылки на pcl::GrabCut< PointT >::NLinks::dists и pcl::GrabCut< PointT >::NLinks::weights.

extract()

template<typename PointT >
void pcl::GrabCut< PointT >::extract ( std::vector< pcl::PointIndices > & clusters )

Этот метод запускает алгоритм сегментации и возвращает кластеры, полученные во время сегментации.

Индексы точек, принадлежащих объекту, будут храниться в кластере с индексом 1, другие индексы будут храниться в кластере с индексом 0.

Параметры
[out] clusters кластеры, которые были получены. Каждый кластер — это массив индексов точек.

Определение в строке 502 файла grabcut_segmentation.hpp.

Ссылается на pcl::segmentation::grabcut::SegmentationForeground.

fitGMMs()

template<typename PointT >
void pcl::GrabCut< PointT >::fitGMMs
protectedvirtual

Подгонка многомерных гауссовых моделей.

Определение в строке 185 файла grabcut_segmentation.hpp.

Ссылается на pcl::segmentation::grabcut::buildGMMs().

getK()

template<typename PointT >
std::uint32_t pcl::GrabCut< PointT >::getK ( )
inline
Возвращает
число компонент в GMM

Определение в строке 368 файла grabcut_segmentation.h.

Ссылается на pcl::GrabCut< PointT >::K_.

getLambda()

template<typename PointT >
float pcl::GrabCut< PointT >::getLambda ( )
inline
Возвращает
лямбда

Определение в строке 360 файла grabcut_segmentation.h.

Ссылается на pcl::GrabCut< PointT >::lambda_.

getNumberOfNeighbours()

template<typename PointT >
int pcl::GrabCut< PointT >::getNumberOfNeighbours ( ) const
inline

Возвращает количество соседей для поиска.

Определение в строке 389 файла grabcut_segmentation.h.

Ссылки на pcl::GrabCut< PointT >::nb_neighbours_.

getSearchMethod()

template<typename PointT >
KdTreePtr pcl::GrabCut< PointT >::getSearchMethod ( )
inline

Получить указатель на используемый метод поиска.

Определение в строке 381 файла grabcut_segmentation.h.

Ссылки на pcl::GrabCut< PointT >::tree_.

initCompute()

template<typename PointT >
bool pcl::GrabCut< PointT >::initCompute
protected

Определение в строке 87 файла grabcut_segmentation.hpp.

Ссылки на pcl::segmentation::grabcut::SegmentationBackground и pcl::segmentation::grabcut::TrimapUnknown.

initGraph()

template<typename PointT >
void pcl::GrabCut< PointT >::initGraph
protected

Построение графа для GraphCut.

Определение в строке 269 файла grabcut_segmentation.hpp.

Ссылается на pcl::GrabCut< PointT >::NLinks::indices, pcl::GrabCut< PointT >::NLinks::nb_links, pcl::segmentation::grabcut::TrimapBackground, pcl::segmentation::grabcut::TrimapUnknown, pcl::UNAVAILABLE и pcl::GrabCut< PointT >::NLinks::weights.

isSource()

template<typename PointT >
bool pcl::GrabCut< PointT >::isSource ( vertex_descriptor v )
inlineprotected
Возвращает
true, если v находится в исходном дереве

Определение в строке 446 файла grabcut_segmentation.h.

Ссылки на pcl::GrabCut< PointT >::graph_ и pcl::segmentation::grabcut::BoykovKolmogorov::inSourceTree().

refine()

template<typename PointT >
void pcl::GrabCut< PointT >::refine
virtual

Выполнить уточнение Grabcut на жёстком сегментировании.

Определение в строке 212 файла grabcut_segmentation.hpp.

refineOnce()

template<typename PointT >
int pcl::GrabCut< PointT >::refineOnce
virtual
Возвращает
количество пикселей, которые изменились с фонового на передний план или наоборот

Определение в строке 195 файла grabcut_segmentation.hpp.

Ссылается на pcl::segmentation::grabcut::learnGMMs().

setBackgroundPoints()

template<typename PointT >
void pcl::GrabCut< PointT >::setBackgroundPoints ( const PointCloudConstPtr & background_points )

Установить фоновые точки, точки переднего плана = точки \ фоновые точки.

setBackgroundPointsIndices() [1/2]

template<typename PointT >
void pcl::GrabCut< PointT >::setBackgroundPointsIndices ( const PointIndicesConstPtr & indices )

Установить индексы фона, индексы переднего плана = индексы \ индексы фона.

Определение в строке 163 файла grabcut_segmentation.hpp.

Ссылки на pcl::segmentation::grabcut::SegmentationBackground, pcl::segmentation::grabcut::SegmentationForeground, pcl::segmentation::grabcut::TrimapBackground и pcl::segmentation::grabcut::TrimapUnknown.

setBackgroundPointsIndices() [2/2]

template<typename PointT >
void pcl::GrabCut< PointT >::setBackgroundPointsIndices ( int x1,
int y1,
int x2,
int y2
)

Установить индексы фона, индексы переднего плана = индексы \ индексы фона.

setInputCloud()

template<typename PointT >
void pcl::GrabCut< PointT >::setInputCloud ( const PointCloudConstPtr & cloud )
overridevirtual

Предоставьте указатель на входные данные.

Параметры
[in] cloud постоянный указатель на общий объект boost, ссылающийся на сообщение PointCloud

Переопределено из pcl::PCLBase< PointT >.

Определение в строке 81 файла grabcut_segmentation.hpp.

setK()

template<typename PointT >
void pcl::GrabCut< PointT >::setK ( std::uint32_t K )
inline

Установить параметр K заданным пользователем значением.

Предлагаемое значение авторами — 5.

Параметры
[in] K количество компонент, используемых в GMM

Определение в строке 373 файла grabcut_segmentation.h.

Ссылки на pcl::K и pcl::GrabCut< PointT >::K_.

setLambda()

template<typename PointT >
void pcl::GrabCut< PointT >::setLambda ( float lambda )
inline

Установить параметр lambda заданным пользователем значением.

Предлагаемое значение авторами — 50.

Параметры
[in] lambda

Определение в строке 365 файла grabcut_segmentation.h.

Ссылки на pcl::GrabCut< PointT >::lambda_.

setNumberOfNeighbours()

template<typename PointT >
void pcl::GrabCut< PointT >::setNumberOfNeighbours ( int nb_neighbours )
inline

Разрешает установить количество соседей для поиска.

Parameters
[in] nb_neighbours новое количество соседей

Определение в строке 386 файла grabcut_segmentation.h.

Ссылки на pcl::GrabCut< PointT >::nb_neighbours_.

setSearchMethod()

template<typename PointT >
void pcl::GrabCut< PointT >::setSearchMethod ( const KdTreePtr & tree )
inline

Предоставьте указатель на объект поиска.

Параметры
tree указатель на объект пространственного поиска.

Определение в строке 378 файла grabcut_segmentation.h.

Ссылается на pcl::GrabCut< PointT >::tree_.

setTerminalWeights()

template<typename PointT >
void pcl::GrabCut< PointT >::setTerminalWeights ( vertex_descriptor v,
float source_capacity,
float sink_capacity
)
protected

Установите веса SOURCE --> v и v --> SINK.

Определение в строке 156 файла grabcut_segmentation.hpp.

setTrimap()

template<typename PointT >
void pcl::GrabCut< PointT >::setTrimap ( const PointIndicesConstPtr & indices,
segmentation::grabcut::TrimapValue t
)
protected

Редактирование тримапа.

Определение в строке 252 файла grabcut_segmentation.hpp.

Ссылки на pcl::segmentation::grabcut::SegmentationBackground, pcl::segmentation::grabcut::SegmentationForeground, pcl::segmentation::grabcut::TrimapBackground, и pcl::segmentation::grabcut::TrimapForeground.

updateHardSegmentation()

template<typename PointT >
int pcl::GrabCut< PointT >::updateHardSegmentation
protected

Определение в строке 221 файла grabcut_segmentation.hpp.

Ссылается на pcl::segmentation::grabcut::SegmentationBackground, pcl::segmentation::grabcut::SegmentationForeground, pcl::segmentation::grabcut::TrimapBackground и pcl::segmentation::grabcut::TrimapForeground.

Документация по данным члена

background_GMM_

template<typename PointT >
segmentation::grabcut::GMM pcl::GrabCut< PointT >::background_GMM_
protected

Определение в строке 475 файла grabcut_segmentation.h.

beta_

template<typename PointT >
float pcl::GrabCut< PointT >::beta_
protected

beta = 1/2 * среднее значение квадратов цветовых расстояний между всеми парами пикселей с 8-соседними пикселями.

Определение в строке 457 файла grabcut_segmentation.h.

foreground_GMM_

template<typename PointT >
segmentation::grabcut::GMM pcl::GrabCut< PointT >::foreground_GMM_
protected

Определение в строке 475 файла grabcut_segmentation.h.

GMM_component_

template<typename PointT >
std::vector<std::size_t> pcl::GrabCut< PointT >::GMM_component_
protected

Определение в строке 471 файла grabcut_segmentation.h.

graph_

template<typename PointT >
pcl::segmentation::grabcut::BoykovKolmogorov pcl::GrabCut< PointT >::graph_
protected

Граф для Graphcut.

Определение в строке 478 файла grabcut_segmentation.h.

Используется в pcl::GrabCut< PointT >::isSource().

graph_nodes_

template<typename PointT >
std::vector<vertex_descriptor> pcl::GrabCut< PointT >::graph_nodes_
protected

Узлы графа.

Определение в строке 480 файла grabcut_segmentation.h.

hard_segmentation_

template<typename PointT >
std::vector<segmentation::grabcut::SegmentationValue> pcl::GrabCut< PointT >::hard_segmentation_
protected

Определение в строке 472 файла grabcut_segmentation.h.

height_

template<typename PointT >
std::uint32_t pcl::GrabCut< PointT >::height_
protected

Высота изображения

Определение в строке 450 файла grabcut_segmentation.h.

image_

template<typename PointT >
segmentation::grabcut::Image::Ptr pcl::GrabCut< PointT >::image_
protected

Преобразованный входной параметр.

Определение в строке 469 файла grabcut_segmentation.h.

initialized_

template<typename PointT >
bool pcl::GrabCut< PointT >::initialized_
protected

Инициализирована ли сегментация.

Определение в строке 465 файла grabcut_segmentation.h.

K_

template<typename PointT >
std::uint32_t pcl::GrabCut< PointT >::K_
protected

Количество компонент GMM.

Определение в строке 453 файла grabcut_segmentation.h.

Используется в pcl::GrabCut< PointT >::getK() и pcl::GrabCut< PointT >::setK().

L_

template<typename PointT >
float pcl::GrabCut< PointT >::L_
protected

L = большое значение для принудительного назначения пикселя к фоновому или переднему плану.

Определение в строке 459 файла grabcut_segmentation.h.

lambda_

template<typename PointT >
float pcl::GrabCut< PointT >::lambda_
protected

lambda = 50. Это значение было предложено статьёй GrabCut.

Определение в строке 455 файла grabcut_segmentation.h.

Используется в pcl::GrabCut< PointT >::getLambda() и pcl::GrabCut< PointT >::setLambda().

n_links_

template<typename PointT >
std::vector<NLinks> pcl::GrabCut< PointT >::n_links_
protected

Вычисленные веса N-связей.

Определение в строке 467 файла grabcut_segmentation.h.

nb_neighbours_

template<typename PointT >
int pcl::GrabCut< PointT >::nb_neighbours_
protected

Количество соседей.

Определение в строке 463 файла grabcut_segmentation.h.

Используется в pcl::GrabCut< PointT >::getNumberOfNeighbours() и pcl::GrabCut< PointT >::setNumberOfNeighbours().

soft_segmentation_

template<typename PointT >
std::vector<float> pcl::GrabCut< PointT >::soft_segmentation_
protected

Определение в строке 474 файла grabcut_segmentation.h.

tree_

template<typename PointT >
KdTreePtr pcl::GrabCut< PointT >::tree_
protected

Указатель на объект пространственного поиска.

Определение в строке 461 файла grabcut_segmentation.h.

Используется в pcl::GrabCut< PointT >::getSearchMethod() и pcl::GrabCut< PointT >::setSearchMethod().

trimap_

template<typename PointT >
std::vector<segmentation::grabcut::TrimapValue> pcl::GrabCut< PointT >::trimap_
protected

Определение в строке 470 файла grabcut_segmentation.h.

width_

template<typename PointT >
std::uint32_t pcl::GrabCut< PointT >::width_
protected

ширина изображения

Определение в строке 448 файла grabcut_segmentation.h.


Документация по этому классу была сгенерирована из следующих файлов:
  • pcl/segmentation/grabcut_segmentation.h
  • pcl/segmentation/impl/grabcut_segmentation.hpp

© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_grab_cut.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API