本文整理汇总了C++中arma::Mat::memptr方法的典型用法代码示例。如果您正苦于以下问题:C++ Mat::memptr方法的具体用法?C++ Mat::memptr怎么用?C++ Mat::memptr使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类arma::Mat
的用法示例。
在下文中一共展示了Mat::memptr方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Convolution
static typename std::enable_if<
std::is_same<Border, ValidConvolution>::value, void>::type
Convolution(const arma::Mat<eT>& input,
const arma::Mat<eT>& filter,
arma::Mat<eT>& output,
const size_t dW = 1,
const size_t dH = 1)
{
output = arma::zeros<arma::Mat<eT> >((input.n_rows - filter.n_rows + 1) /
dW, (input.n_cols - filter.n_cols + 1) / dH);
// It seems to be about 3.5 times faster to use pointers instead of
// filter(ki, kj) * input(leftInput + ki, topInput + kj) and output(i, j).
eT* outputPtr = output.memptr();
for (size_t j = 0; j < output.n_cols; ++j)
{
for (size_t i = 0; i < output.n_rows; ++i, outputPtr++)
{
const eT* kernelPtr = filter.memptr();
for (size_t kj = 0; kj < filter.n_cols; ++kj)
{
const eT* inputPtr = input.colptr(kj + j * dW) + i * dH;
for (size_t ki = 0; ki < filter.n_rows; ++ki, ++kernelPtr, ++inputPtr)
*outputPtr += *kernelPtr * (*inputPtr);
}
}
}
}
示例2: to_raw
inline Raw_Matrix to_raw(arma::Mat<float> & mat) {
Raw_Matrix matrix;
matrix.n_rows = mat.n_rows;
matrix.n_cols= mat.n_cols;
matrix.data = mat.memptr();
return matrix;
}
示例3: Arma_mat_to_cv_mat
void Arma_mat_to_cv_mat(const arma::Mat<T>& arma_mat_in, cv::Mat_<T>& cv_mat_out)
{
cv::transpose(cv::Mat_<T>(static_cast<int>(arma_mat_in.n_cols),
static_cast<int>(arma_mat_in.n_rows),
const_cast<T*>(arma_mat_in.memptr())),
cv_mat_out);
};
示例4: loadSeries
void MainWindow::loadSeries() {
QString seriesFile = __fileManager.openFile(0, this, "Open Series File...", "*.mat");
if (seriesFile != "") {
cout << "Loading start ..." << flush;
_data.load(seriesFile.toStdString().c_str());
cout << " done. " << endl;
_dataT = arma::trans(_data);
cout << _data.n_cols << "," << _data.n_rows << endl;
_imageBuffer.set_size(_mapid.n_rows, _mapid.n_cols);
for (int i = 0; i < _mapid.n_rows; i++) {
for (int j = 0; j < _mapid.n_cols; j++) {
if (_mapid(i,j) != _mapid(i,j)) {
_imageBuffer(i,j) = NAN;
} else {
_imageBuffer(i,j) = 0;
}
}
}
ui.slider->setMaximum(_data.n_cols - 1);
ui.minValue->setValue(_data.min());
ui.maxValue->setValue(_data.max());
_mapItem->setImage(_imageBuffer.memptr(), _imageBuffer.n_rows, _imageBuffer.n_cols);
_mapItem->setRange(ui.minValue->value(), ui.maxValue->value());
_mapItem->setInteraction(this);
selectValue(0);
}
}
示例5: connect
MainWindow::MainWindow(QWidget* parent) {
ui.setupUi(this);
ui.graphicsView->setScene(&_scene);
_mapid.load("./MapID.mat");
cout << _mapid.n_cols << "," << _mapid.n_rows << endl;
connect(ui.slider, SIGNAL(valueChanged(int)), SLOT(selectValue(int)));
connect(ui.clearGraphButton, SIGNAL(pressed()), SLOT(clearGraphs()));
connect(ui.loadSeries, SIGNAL(pressed()), SLOT(loadSeries()));
_mapItem = new QFloatImageItem();
_mapItem->setImage(_imageBuffer.memptr(), _imageBuffer.n_rows, _imageBuffer.n_cols);
_mapItem->setRange(ui.minValue->value(), ui.maxValue->value());
_mapItem->setInteraction(this);
_scene.addItem(_mapItem);
_traceItem = _scene.addPath(_tracePath);
_traceItem->setPen(QPen(Qt::black));
QTransform matrix;
matrix.scale(5, 5);
ui.graphicsView->setTransform(matrix);
ui.customPlot->setInteraction(QCustomPlot::iSelectLegend, true);
ui.customPlot->setInteraction(QCustomPlot::iSelectPlottables, true);
connect(ui.customPlot, SIGNAL(selectionChangedByUser()), SLOT(graphSelected()));
_plotMarker = new QGraphicsEllipseItem(_mapItem);
_plotMarker->setVisible(false);
}
示例6:
void
save(OutputArchive& ar, const arma::Mat<T>& mat, const unsigned int version) {
size_t size = mat.size();
ar & mat.n_cols;
ar & mat.n_rows;
ar & make_array(mat.memptr(), size);
}
示例7:
sha1sum(arma::Mat<T> matrix)
{
size_t ptr_lenght=sizeof(T)*matrix.n_cols*matrix.n_rows;
SHA1((unsigned char*)matrix.memptr(), ptr_lenght, sha1_result);
}
示例8: mat
cv::Mat
arma2cv(const arma::Mat<T>& from, bool copy = true) {
cv::Mat mat(from.n_cols, from.n_rows, cv::DataType<T>::type, const_cast<T*>(from.memptr()));
mat = mat.t();
return copy ? mat.clone() : mat;
}