@Namespace(value="cv")
@NoOffset
public static class opencv_core.NAryMatIterator
extends org.bytedeco.javacpp.Pointer
Use the class to implement unary, binary, and, generally, n-ary element-wise operations on
multi-dimensional arrays. Some of the arguments of an n-ary function may be continuous arrays, some
may be not. It is possible to use conventional MatIterator 's for each array but incrementing all of
the iterators after each small operations may be a big overhead. In this case consider using
NAryMatIterator to iterate through several matrices simultaneously as long as they have the same
geometry (dimensionality and all the dimension sizes are the same). On each iteration it.planes[0],
it.planes[1],... will be the slices of the corresponding matrices.
The example below illustrates how you can compute a normalized and threshold 3D color histogram:
void computeNormalizedColorHist(const Mat& image, Mat& hist, int N, double minProb)
{
const int histSize[] = {N, N, N};
// make sure that the histogram has a proper size and type
hist.create(3, histSize, CV_32F);
// and clear it
hist = Scalar(0);
// the loop below assumes that the image
// is a 8-bit 3-channel. check it.
CV_Assert(image.type() == CV_8UC3);
MatConstIterator_<Vec3b> it = image.begin<Vec3b>(),
it_end = image.end<Vec3b>();
for( ; it != it_end; ++it )
{
const Vec3b& pix = *it;
hist.at<float>(pix[0]*N/256, pix[1]*N/256, pix[2]*N/256) += 1.f;
}
minProb *= image.rows*image.cols;
// initialize iterator (the style is different from STL).
// after initialization the iterator will contain
// the number of slices or planes the iterator will go through.
// it simultaneously increments iterators for several matrices
// supplied as a null terminated list of pointers
const Mat* arrays[] = {&hist, 0};
Mat planes[1];
NAryMatIterator itNAry(arrays, planes, 1);
double s = 0;
// iterate through the matrix. on each iteration
// itNAry.planes[i] (of type Mat) will be set to the current plane
// of the i-th n-dim matrix passed to the iterator constructor.
for(int p = 0; p < itNAry.nplanes; p++, ++itNAry)
{
threshold(itNAry.planes[0], itNAry.planes[0], minProb, 0, THRESH_TOZERO);
s += sum(itNAry.planes[0])[0];
}
s = 1./s;
itNAry = NAryMatIterator(arrays, planes, 1);
for(int p = 0; p < itNAry.nplanes; p++, ++itNAry)
itNAry.planes[0] *= s;
}
| Constructor and Description |
|---|
NAryMatIterator()
the default constructor
|
NAryMatIterator(long size)
Native array allocator.
|
NAryMatIterator(opencv_core.Mat arrays,
byte[] ptrs) |
NAryMatIterator(opencv_core.Mat arrays,
byte[] ptrs,
int narrays) |
NAryMatIterator(opencv_core.Mat arrays,
ByteBuffer ptrs) |
NAryMatIterator(opencv_core.Mat arrays,
ByteBuffer ptrs,
int narrays) |
NAryMatIterator(opencv_core.Mat arrays,
org.bytedeco.javacpp.BytePointer ptrs) |
NAryMatIterator(opencv_core.Mat arrays,
org.bytedeco.javacpp.BytePointer ptrs,
int narrays) |
NAryMatIterator(opencv_core.Mat arrays,
opencv_core.Mat planes) |
NAryMatIterator(opencv_core.Mat arrays,
opencv_core.Mat planes,
int narrays) |
NAryMatIterator(org.bytedeco.javacpp.Pointer p)
Pointer cast constructor.
|
NAryMatIterator(org.bytedeco.javacpp.PointerPointer arrays,
opencv_core.Mat planes,
int narrays)
the full constructor taking arbitrary number of n-dim matrices
|
NAryMatIterator(org.bytedeco.javacpp.PointerPointer arrays,
org.bytedeco.javacpp.PointerPointer ptrs,
int narrays)
the full constructor taking arbitrary number of n-dim matrices
|
| Modifier and Type | Method and Description |
|---|---|
org.bytedeco.javacpp.PointerPointer |
arrays() |
opencv_core.Mat |
arrays(int i)
the iterated arrays
|
opencv_core.NAryMatIterator |
increment()
proceeds to the next plane of every iterated matrix
|
opencv_core.NAryMatIterator |
increment(int arg0)
proceeds to the next plane of every iterated matrix (postfix increment operator)
|
void |
init(opencv_core.Mat arrays,
opencv_core.Mat planes,
byte[] ptrs) |
void |
init(opencv_core.Mat arrays,
opencv_core.Mat planes,
byte[] ptrs,
int narrays) |
void |
init(opencv_core.Mat arrays,
opencv_core.Mat planes,
ByteBuffer ptrs) |
void |
init(opencv_core.Mat arrays,
opencv_core.Mat planes,
ByteBuffer ptrs,
int narrays) |
void |
init(opencv_core.Mat arrays,
opencv_core.Mat planes,
org.bytedeco.javacpp.BytePointer ptrs) |
void |
init(opencv_core.Mat arrays,
opencv_core.Mat planes,
org.bytedeco.javacpp.BytePointer ptrs,
int narrays) |
void |
init(org.bytedeco.javacpp.PointerPointer arrays,
opencv_core.Mat planes,
org.bytedeco.javacpp.PointerPointer ptrs,
int narrays)
the separate iterator initialization method
|
int |
narrays()
the number of arrays
|
opencv_core.NAryMatIterator |
narrays(int narrays) |
long |
nplanes()
the number of hyper-planes that the iterator steps through
|
opencv_core.NAryMatIterator |
nplanes(long nplanes) |
opencv_core.Mat |
planes()
the current planes
|
opencv_core.NAryMatIterator |
planes(opencv_core.Mat planes) |
opencv_core.NAryMatIterator |
position(long position) |
org.bytedeco.javacpp.PointerPointer |
ptrs() |
org.bytedeco.javacpp.BytePointer |
ptrs(int i)
data pointers
|
opencv_core.NAryMatIterator |
ptrs(int i,
org.bytedeco.javacpp.BytePointer ptrs) |
opencv_core.NAryMatIterator |
ptrs(org.bytedeco.javacpp.PointerPointer ptrs) |
long |
size()
the size of each segment (in elements)
|
opencv_core.NAryMatIterator |
size(long size) |
address, asBuffer, asByteBuffer, availablePhysicalBytes, calloc, capacity, capacity, close, deallocate, deallocate, deallocateReferences, deallocator, deallocator, equals, fill, formatBytes, free, hashCode, isNull, limit, limit, malloc, maxBytes, maxPhysicalBytes, memchr, memcmp, memcpy, memmove, memset, offsetof, parseBytes, physicalBytes, position, put, realloc, setNull, sizeof, toString, totalBytes, totalPhysicalBytes, withDeallocator, zeropublic NAryMatIterator(org.bytedeco.javacpp.Pointer p)
Pointer.Pointer(Pointer).public NAryMatIterator(long size)
Pointer.position(long).public NAryMatIterator()
public NAryMatIterator(@Cast(value="const cv::Mat**")
org.bytedeco.javacpp.PointerPointer arrays,
@Cast(value="uchar**")
org.bytedeco.javacpp.PointerPointer ptrs,
int narrays)
public NAryMatIterator(@Const @ByPtrPtr
opencv_core.Mat arrays,
@Cast(value="uchar**") @ByPtrPtr
org.bytedeco.javacpp.BytePointer ptrs)
public NAryMatIterator(@Const @ByPtrPtr
opencv_core.Mat arrays,
@Cast(value="uchar**") @ByPtrPtr
org.bytedeco.javacpp.BytePointer ptrs,
int narrays)
public NAryMatIterator(@Const @ByPtrPtr
opencv_core.Mat arrays,
@Cast(value="uchar**") @ByPtrPtr
ByteBuffer ptrs,
int narrays)
public NAryMatIterator(@Const @ByPtrPtr
opencv_core.Mat arrays,
@Cast(value="uchar**") @ByPtrPtr
ByteBuffer ptrs)
public NAryMatIterator(@Const @ByPtrPtr
opencv_core.Mat arrays,
@Cast(value="uchar**") @ByPtrPtr
byte[] ptrs,
int narrays)
public NAryMatIterator(@Const @ByPtrPtr
opencv_core.Mat arrays,
@Cast(value="uchar**") @ByPtrPtr
byte[] ptrs)
public NAryMatIterator(@Cast(value="const cv::Mat**")
org.bytedeco.javacpp.PointerPointer arrays,
opencv_core.Mat planes,
int narrays)
public NAryMatIterator(@Const @ByPtrPtr
opencv_core.Mat arrays,
opencv_core.Mat planes)
public NAryMatIterator(@Const @ByPtrPtr
opencv_core.Mat arrays,
opencv_core.Mat planes,
int narrays)
public opencv_core.NAryMatIterator position(long position)
position in class org.bytedeco.javacpp.Pointerpublic void init(@Cast(value="const cv::Mat**")
org.bytedeco.javacpp.PointerPointer arrays,
opencv_core.Mat planes,
@Cast(value="uchar**")
org.bytedeco.javacpp.PointerPointer ptrs,
int narrays)
public void init(@Const @ByPtrPtr
opencv_core.Mat arrays,
opencv_core.Mat planes,
@Cast(value="uchar**") @ByPtrPtr
org.bytedeco.javacpp.BytePointer ptrs)
public void init(@Const @ByPtrPtr
opencv_core.Mat arrays,
opencv_core.Mat planes,
@Cast(value="uchar**") @ByPtrPtr
org.bytedeco.javacpp.BytePointer ptrs,
int narrays)
public void init(@Const @ByPtrPtr
opencv_core.Mat arrays,
opencv_core.Mat planes,
@Cast(value="uchar**") @ByPtrPtr
ByteBuffer ptrs,
int narrays)
public void init(@Const @ByPtrPtr
opencv_core.Mat arrays,
opencv_core.Mat planes,
@Cast(value="uchar**") @ByPtrPtr
ByteBuffer ptrs)
public void init(@Const @ByPtrPtr
opencv_core.Mat arrays,
opencv_core.Mat planes,
@Cast(value="uchar**") @ByPtrPtr
byte[] ptrs,
int narrays)
public void init(@Const @ByPtrPtr
opencv_core.Mat arrays,
opencv_core.Mat planes,
@Cast(value="uchar**") @ByPtrPtr
byte[] ptrs)
@ByRef @Name(value="operator ++") public opencv_core.NAryMatIterator increment()
@ByVal @Name(value="operator ++") public opencv_core.NAryMatIterator increment(int arg0)
@MemberGetter @Const public opencv_core.Mat arrays(int i)
@MemberGetter @Cast(value="const cv::Mat**") public org.bytedeco.javacpp.PointerPointer arrays()
public opencv_core.Mat planes()
public opencv_core.NAryMatIterator planes(opencv_core.Mat planes)
@Cast(value="uchar*") public org.bytedeco.javacpp.BytePointer ptrs(int i)
public opencv_core.NAryMatIterator ptrs(int i, org.bytedeco.javacpp.BytePointer ptrs)
@Cast(value="uchar**") public org.bytedeco.javacpp.PointerPointer ptrs()
public opencv_core.NAryMatIterator ptrs(org.bytedeco.javacpp.PointerPointer ptrs)
public int narrays()
public opencv_core.NAryMatIterator narrays(int narrays)
@Cast(value="size_t") public long nplanes()
public opencv_core.NAryMatIterator nplanes(long nplanes)
@Cast(value="size_t") public long size()
public opencv_core.NAryMatIterator size(long size)
Copyright © 2018. All rights reserved.