Fix spelling typos

This commit is contained in:
Brian Wignall 2019-12-26 06:45:03 -05:00
parent 89d3f95a8e
commit 659ffaddb4
110 changed files with 142 additions and 142 deletions

View File

@ -1078,8 +1078,8 @@ void cvCreateTrainingSamples( const char* filename,
icvPlaceDistortedSample( sample, inverse, maxintensitydev, icvPlaceDistortedSample( sample, inverse, maxintensitydev,
maxxangle, maxyangle, maxzangle, maxxangle, maxyangle, maxzangle,
0 /* nonzero means placing image without cut offs */, 0 /* nonzero means placing image without cut offs */,
0.0 /* nozero adds random shifting */, 0.0 /* nonzero adds random shifting */,
0.0 /* nozero adds random scaling */, 0.0 /* nonzero adds random scaling */,
&data ); &data );
if( showsamples ) if( showsamples )

View File

@ -45,7 +45,7 @@ protected:
}; };
std::vector<Feature> features; std::vector<Feature> features;
cv::Mat normSum; //for nomalization calculation (L1 or L2) cv::Mat normSum; //for normalization calculation (L1 or L2)
std::vector<cv::Mat> hist; std::vector<cv::Mat> hist;
}; };
@ -70,7 +70,7 @@ inline float CvHOGEvaluator::Feature::calc( const std::vector<cv::Mat>& _hists,
const float *pnormSum = _normSum.ptr<float>((int)y); const float *pnormSum = _normSum.ptr<float>((int)y);
normFactor = (float)(pnormSum[fastRect[0].p0] - pnormSum[fastRect[1].p1] - pnormSum[fastRect[2].p2] + pnormSum[fastRect[3].p3]); normFactor = (float)(pnormSum[fastRect[0].p0] - pnormSum[fastRect[1].p1] - pnormSum[fastRect[2].p2] + pnormSum[fastRect[3].p3]);
res = (res > 0.001f) ? ( res / (normFactor + 0.001f) ) : 0.f; //for cutting negative values, which apper due to floating precision res = (res > 0.001f) ? ( res / (normFactor + 0.001f) ) : 0.f; //for cutting negative values, which appear due to floating precision
return res; return res;
} }

View File

@ -145,7 +145,7 @@ no child, parent is contour-3. So array is [-1,-1,-1,3].
And this is the final guy, Mr.Perfect. It retrieves all the contours and creates a full family And this is the final guy, Mr.Perfect. It retrieves all the contours and creates a full family
hierarchy list. **It even tells, who is the grandpa, father, son, grandson and even beyond... :)**. hierarchy list. **It even tells, who is the grandpa, father, son, grandson and even beyond... :)**.
For examle, I took above image, rewrite the code for cv.RETR_TREE, reorder the contours as per the For example, I took above image, rewrite the code for cv.RETR_TREE, reorder the contours as per the
result given by OpenCV and analyze it. Again, red letters give the contour number and green letters result given by OpenCV and analyze it. Again, red letters give the contour number and green letters
give the hierarchy order. give the hierarchy order.

View File

@ -17,7 +17,7 @@ In short, we found locations of some parts of an object in another cluttered ima
is sufficient to find the object exactly on the trainImage. is sufficient to find the object exactly on the trainImage.
For that, we can use a function from calib3d module, ie **cv.findHomography()**. If we pass the set For that, we can use a function from calib3d module, ie **cv.findHomography()**. If we pass the set
of points from both the images, it will find the perpective transformation of that object. Then we of points from both the images, it will find the perspective transformation of that object. Then we
can use **cv.perspectiveTransform()** to find the object. It needs atleast four correct points to can use **cv.perspectiveTransform()** to find the object. It needs atleast four correct points to
find the transformation. find the transformation.
@ -68,7 +68,7 @@ Now we set a condition that atleast 10 matches (defined by MIN_MATCH_COUNT) are
find the object. Otherwise simply show a message saying not enough matches are present. find the object. Otherwise simply show a message saying not enough matches are present.
If enough matches are found, we extract the locations of matched keypoints in both the images. They If enough matches are found, we extract the locations of matched keypoints in both the images. They
are passed to find the perpective transformation. Once we get this 3x3 transformation matrix, we use are passed to find the perspective transformation. Once we get this 3x3 transformation matrix, we use
it to transform the corners of queryImage to corresponding points in trainImage. Then we draw it. it to transform the corners of queryImage to corresponding points in trainImage. Then we draw it.
@code{.py} @code{.py}
if len(good)>MIN_MATCH_COUNT: if len(good)>MIN_MATCH_COUNT:

View File

@ -28,7 +28,7 @@ If it is a greater than a threshold value, it is considered as a corner. If we p
![image](images/shitomasi_space.png) ![image](images/shitomasi_space.png)
From the figure, you can see that only when \f$\lambda_1\f$ and \f$\lambda_2\f$ are above a minimum value, From the figure, you can see that only when \f$\lambda_1\f$ and \f$\lambda_2\f$ are above a minimum value,
\f$\lambda_{min}\f$, it is conidered as a corner(green region). \f$\lambda_{min}\f$, it is considered as a corner(green region).
Code Code
---- ----

View File

@ -144,7 +144,7 @@ cv.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)
### 7.b. Rotated Rectangle ### 7.b. Rotated Rectangle
Here, bounding rectangle is drawn with minimum area, so it considers the rotation also. The function Here, bounding rectangle is drawn with minimum area, so it considers the rotation also. The function
used is **cv.minAreaRect()**. It returns a Box2D structure which contains following detals - ( used is **cv.minAreaRect()**. It returns a Box2D structure which contains following details - (
center (x,y), (width, height), angle of rotation ). But to draw this rectangle, we need 4 corners of center (x,y), (width, height), angle of rotation ). But to draw this rectangle, we need 4 corners of
the rectangle. It is obtained by the function **cv.boxPoints()** the rectangle. It is obtained by the function **cv.boxPoints()**
@code{.py} @code{.py}

View File

@ -185,7 +185,7 @@ array([[[ 3, -1, 1, -1],
And this is the final guy, Mr.Perfect. It retrieves all the contours and creates a full family And this is the final guy, Mr.Perfect. It retrieves all the contours and creates a full family
hierarchy list. **It even tells, who is the grandpa, father, son, grandson and even beyond... :)**. hierarchy list. **It even tells, who is the grandpa, father, son, grandson and even beyond... :)**.
For examle, I took above image, rewrite the code for cv.RETR_TREE, reorder the contours as per the For example, I took above image, rewrite the code for cv.RETR_TREE, reorder the contours as per the
result given by OpenCV and analyze it. Again, red letters give the contour number and green letters result given by OpenCV and analyze it. Again, red letters give the contour number and green letters
give the hierarchy order. give the hierarchy order.

View File

@ -381,7 +381,7 @@ Here is explained in detail the code for the real time application:
as not, there are false correspondences or also called *outliers*. The [Random Sample as not, there are false correspondences or also called *outliers*. The [Random Sample
Consensus](http://en.wikipedia.org/wiki/RANSAC) or *Ransac* is a non-deterministic iterative Consensus](http://en.wikipedia.org/wiki/RANSAC) or *Ransac* is a non-deterministic iterative
method which estimate parameters of a mathematical model from observed data producing an method which estimate parameters of a mathematical model from observed data producing an
approximate result as the number of iterations increase. After appyling *Ransac* all the *outliers* approximate result as the number of iterations increase. After applying *Ransac* all the *outliers*
will be eliminated to then estimate the camera pose with a certain probability to obtain a good will be eliminated to then estimate the camera pose with a certain probability to obtain a good
solution. solution.

View File

@ -153,7 +153,7 @@ file name before running the application, e.g.:
$ GRAPH_DUMP_PATH=segm.dot ./bin/example_tutorial_porting_anisotropic_image_segmentation_gapi $ GRAPH_DUMP_PATH=segm.dot ./bin/example_tutorial_porting_anisotropic_image_segmentation_gapi
Now this file can be visalized with a `dot` command like this: Now this file can be visualized with a `dot` command like this:
$ dot segm.dot -Tpng -o segm.png $ dot segm.dot -Tpng -o segm.png
@ -368,7 +368,7 @@ visualization like this:
![Anisotropic image segmentation graph with OpenCV & Fluid kernels](pics/segm_fluid.gif) ![Anisotropic image segmentation graph with OpenCV & Fluid kernels](pics/segm_fluid.gif)
This graph doesn't differ structually from its previous version (in This graph doesn't differ structurally from its previous version (in
terms of operations and data objects), though a changed layout (on the terms of operations and data objects), though a changed layout (on the
left side of the dump) is easily noticeable. left side of the dump) is easily noticeable.

View File

@ -427,7 +427,7 @@ the ROI, which will lead to accuracy improvement.
Unfortunately, another problem occurs if we do that: Unfortunately, another problem occurs if we do that:
if the rectangular ROI is near the border, a describing square will probably go if the rectangular ROI is near the border, a describing square will probably go
out of the frame --- that leads to errors of the landmarks detector. out of the frame --- that leads to errors of the landmarks detector.
To aviod such a mistake, we have to implement an algorithm that, firstly, To avoid such a mistake, we have to implement an algorithm that, firstly,
describes every rectangle by a square, then counts the farthest coordinates describes every rectangle by a square, then counts the farthest coordinates
turned up to be outside of the frame and, finally, pads the source image by turned up to be outside of the frame and, finally, pads the source image by
borders (e.g. single-colored) with the size counted. It will be safe to take borders (e.g. single-colored) with the size counted. It will be safe to take

View File

@ -145,7 +145,7 @@ description requires three parameters:
regular "functions" which take and return data. Here network regular "functions" which take and return data. Here network
`Faces` (a detector) takes a cv::GMat and returns a cv::GMat, while `Faces` (a detector) takes a cv::GMat and returns a cv::GMat, while
network `AgeGender` is known to provide two outputs (age and gender network `AgeGender` is known to provide two outputs (age and gender
blobs, respecitvely) -- so its has a `std::tuple<>` as a return blobs, respectively) -- so its has a `std::tuple<>` as a return
type. type.
3. A topology name -- can be any non-empty string, G-API is using 3. A topology name -- can be any non-empty string, G-API is using
these names to distinguish networks inside. Names should be unique these names to distinguish networks inside. Names should be unique

View File

@ -499,7 +499,7 @@ using the following OpenCV methods:
- the imwrite static method from the Highgui class to write an image to a file - the imwrite static method from the Highgui class to write an image to a file
- the GaussianBlur static method from the Imgproc class to apply to blur the original image - the GaussianBlur static method from the Imgproc class to apply to blur the original image
We're also going to use the Mat class which is returned from the imread method and accpeted as the We're also going to use the Mat class which is returned from the imread method and accepted as the
main argument to both the GaussianBlur and the imwrite methods. main argument to both the GaussianBlur and the imwrite methods.
### Add an image to the project ### Add an image to the project

View File

@ -10,7 +10,7 @@ In this tutorial,
- We will see the basics of face detection and eye detection using the Haar Feature-based Cascade Classifiers - We will see the basics of face detection and eye detection using the Haar Feature-based Cascade Classifiers
- We will use the @ref cv::CascadeClassifier class to detect objects in a video stream. Particularly, we - We will use the @ref cv::CascadeClassifier class to detect objects in a video stream. Particularly, we
will use the functions: will use the functions:
- @ref cv::CascadeClassifier::load to load a .xml classifier file. It can be either a Haar or a LBP classifer - @ref cv::CascadeClassifier::load to load a .xml classifier file. It can be either a Haar or a LBP classifier
- @ref cv::CascadeClassifier::detectMultiScale to perform the detection. - @ref cv::CascadeClassifier::detectMultiScale to perform the detection.
Theory Theory

View File

@ -168,7 +168,7 @@ Command line arguments of opencv_traincascade application grouped by purposes:
- `-w <sampleWidth>` : Width of training samples (in pixels). Must have exactly the same value as used during training samples creation (opencv_createsamples utility). - `-w <sampleWidth>` : Width of training samples (in pixels). Must have exactly the same value as used during training samples creation (opencv_createsamples utility).
- `-h <sampleHeight>` : Height of training samples (in pixels). Must have exactly the same value as used during training samples creation (opencv_createsamples utility). - `-h <sampleHeight>` : Height of training samples (in pixels). Must have exactly the same value as used during training samples creation (opencv_createsamples utility).
- Boosted classifer parameters: - Boosted classifier parameters:
- `-bt <{DAB, RAB, LB, GAB(default)}>` : Type of boosted classifiers: DAB - Discrete AdaBoost, RAB - Real AdaBoost, LB - LogitBoost, GAB - Gentle AdaBoost. - `-bt <{DAB, RAB, LB, GAB(default)}>` : Type of boosted classifiers: DAB - Discrete AdaBoost, RAB - Real AdaBoost, LB - LogitBoost, GAB - Gentle AdaBoost.
- `-minHitRate <min_hit_rate>` : Minimal desired hit rate for each stage of the classifier. Overall hit rate may be estimated as (min_hit_rate ^ number_of_stages), @cite Viola04 §4.1. - `-minHitRate <min_hit_rate>` : Minimal desired hit rate for each stage of the classifier. Overall hit rate may be estimated as (min_hit_rate ^ number_of_stages), @cite Viola04 §4.1.
- `-maxFalseAlarmRate <max_false_alarm_rate>` : Maximal desired false alarm rate for each stage of the classifier. Overall false alarm rate may be estimated as (max_false_alarm_rate ^ number_of_stages), @cite Viola04 §4.1. - `-maxFalseAlarmRate <max_false_alarm_rate>` : Maximal desired false alarm rate for each stage of the classifier. Overall false alarm rate may be estimated as (max_false_alarm_rate ^ number_of_stages), @cite Viola04 §4.1.

View File

@ -43,7 +43,7 @@ VideoCapture can retrieve the following data:
- CAP_OPENNI_POINT_CLOUD_MAP - XYZ in meters (CV_32FC3) - CAP_OPENNI_POINT_CLOUD_MAP - XYZ in meters (CV_32FC3)
- CAP_OPENNI_DISPARITY_MAP - disparity in pixels (CV_8UC1) - CAP_OPENNI_DISPARITY_MAP - disparity in pixels (CV_8UC1)
- CAP_OPENNI_DISPARITY_MAP_32F - disparity in pixels (CV_32FC1) - CAP_OPENNI_DISPARITY_MAP_32F - disparity in pixels (CV_32FC1)
- CAP_OPENNI_VALID_DEPTH_MASK - mask of valid pixels (not ocluded, not shaded etc.) - CAP_OPENNI_VALID_DEPTH_MASK - mask of valid pixels (not occluded, not shaded etc.)
(CV_8UC1) (CV_8UC1)
-# data given from BGR image generator: -# data given from BGR image generator:

View File

@ -1321,7 +1321,7 @@ struct CV_EXPORTS_W_SIMPLE CirclesGridFinderParameters
GridType gridType; GridType gridType;
CV_PROP_RW float squareSize; //!< Distance between two adjacent points. Used by CALIB_CB_CLUSTERING. CV_PROP_RW float squareSize; //!< Distance between two adjacent points. Used by CALIB_CB_CLUSTERING.
CV_PROP_RW float maxRectifiedDistance; //!< Max deviation from predicion. Used by CALIB_CB_CLUSTERING. CV_PROP_RW float maxRectifiedDistance; //!< Max deviation from prediction. Used by CALIB_CB_CLUSTERING.
}; };
#ifndef DISABLE_OPENCV_3_COMPATIBILITY #ifndef DISABLE_OPENCV_3_COMPATIBILITY

View File

@ -48,7 +48,7 @@
#include <iterator> #include <iterator>
/* /*
This is stright-forward port v3 of Matlab calibration engine by Jean-Yves Bouguet This is straight-forward port v3 of Matlab calibration engine by Jean-Yves Bouguet
that is (in a large extent) based on the paper: that is (in a large extent) based on the paper:
Z. Zhang. "A flexible new technique for camera calibration". Z. Zhang. "A flexible new technique for camera calibration".
IEEE Transactions on Pattern Analysis and Machine Intelligence, 22(11):1330-1334, 2000. IEEE Transactions on Pattern Analysis and Machine Intelligence, 22(11):1330-1334, 2000.

View File

@ -2474,7 +2474,7 @@ int Chessboard::Board::validateCorners(const cv::Mat &data,cv::flann::Index &fla
std::vector<cv::Point2f>::const_iterator iter1 = points.begin(); std::vector<cv::Point2f>::const_iterator iter1 = points.begin();
for(;iter1 != points.end();++iter1) for(;iter1 != points.end();++iter1)
{ {
// we do not have to check for NaN because of getCorners(flase) // we do not have to check for NaN because of getCorners(false)
std::vector<cv::Point2f>::const_iterator iter2 = iter1+1; std::vector<cv::Point2f>::const_iterator iter2 = iter1+1;
for(;iter2 != points.end();++iter2) for(;iter2 != points.end();++iter2)
if(*iter1 == *iter2) if(*iter1 == *iter2)
@ -3007,7 +3007,7 @@ Chessboard::Board Chessboard::detectImpl(const Mat& gray,std::vector<cv::Mat> &f
if(keypoints_seed.empty()) if(keypoints_seed.empty())
return Chessboard::Board(); return Chessboard::Board();
// check how many points are likely a checkerbord corner // check how many points are likely a checkerboard corner
float response = fabs(keypoints_seed.front().response*MIN_RESPONSE_RATIO); float response = fabs(keypoints_seed.front().response*MIN_RESPONSE_RATIO);
std::vector<KeyPoint>::const_iterator seed_iter = keypoints_seed.begin(); std::vector<KeyPoint>::const_iterator seed_iter = keypoints_seed.begin();
int count = 0; int count = 0;

View File

@ -650,7 +650,7 @@ class Chessboard: public cv::Feature2D
bool top(bool check_empty=false); // moves one corner to the top or returns false bool top(bool check_empty=false); // moves one corner to the top or returns false
bool checkCorner()const; // returns true if the current corner belongs to at least one bool checkCorner()const; // returns true if the current corner belongs to at least one
// none empty cell // none empty cell
bool isNaN()const; // returns true if the currnet corner is NaN bool isNaN()const; // returns true if the current corner is NaN
const cv::Point2f* operator*() const; // current corner coordinate const cv::Point2f* operator*() const; // current corner coordinate
cv::Point2f* operator*(); // current corner coordinate cv::Point2f* operator*(); // current corner coordinate

View File

@ -94,7 +94,7 @@ void CV_ChessboardDetectorBadArgTest::run( int /*start_from */)
img = cb.clone(); img = cb.clone();
initArgs(); initArgs();
pattern_size = Size(2,2); pattern_size = Size(2,2);
errors += run_test_case( Error::StsOutOfRange, "Invlid pattern size" ); errors += run_test_case( Error::StsOutOfRange, "Invalid pattern size" );
pattern_size = cbg.cornersSize(); pattern_size = cbg.cornersSize();
cb.convertTo(img, CV_32F); cb.convertTo(img, CV_32F);

View File

@ -1309,7 +1309,7 @@ CVAPI(void) cvMulTransposed( const CvArr* src, CvArr* dst, int order,
const CvArr* delta CV_DEFAULT(NULL), const CvArr* delta CV_DEFAULT(NULL),
double scale CV_DEFAULT(1.) ); double scale CV_DEFAULT(1.) );
/** Tranposes matrix. Square matrices can be transposed in-place */ /** Transposes matrix. Square matrices can be transposed in-place */
CVAPI(void) cvTranspose( const CvArr* src, CvArr* dst ); CVAPI(void) cvTranspose( const CvArr* src, CvArr* dst );
#define cvT cvTranspose #define cvT cvTranspose

View File

@ -569,7 +569,7 @@ inline v_int64x4 v256_blend(const v_int64x4& a, const v_int64x4& b)
{ return v_int64x4(v256_blend<m>(v_uint64x4(a.val), v_uint64x4(b.val)).val); } { return v_int64x4(v256_blend<m>(v_uint64x4(a.val), v_uint64x4(b.val)).val); }
// shuffle // shuffle
// todo: emluate 64bit // todo: emulate 64bit
#define OPENCV_HAL_IMPL_AVX_SHUFFLE(_Tpvec, intrin) \ #define OPENCV_HAL_IMPL_AVX_SHUFFLE(_Tpvec, intrin) \
template<int m> \ template<int m> \
inline _Tpvec v256_shuffle(const _Tpvec& a) \ inline _Tpvec v256_shuffle(const _Tpvec& a) \

View File

@ -73,7 +73,7 @@ implemented as a structure based on a one SIMD register.
- cv::v_uint8x16 and cv::v_int8x16: sixteen 8-bit integer values (unsigned/signed) - char - cv::v_uint8x16 and cv::v_int8x16: sixteen 8-bit integer values (unsigned/signed) - char
- cv::v_uint16x8 and cv::v_int16x8: eight 16-bit integer values (unsigned/signed) - short - cv::v_uint16x8 and cv::v_int16x8: eight 16-bit integer values (unsigned/signed) - short
- cv::v_uint32x4 and cv::v_int32x4: four 32-bit integer values (unsgined/signed) - int - cv::v_uint32x4 and cv::v_int32x4: four 32-bit integer values (unsigned/signed) - int
- cv::v_uint64x2 and cv::v_int64x2: two 64-bit integer values (unsigned/signed) - int64 - cv::v_uint64x2 and cv::v_int64x2: two 64-bit integer values (unsigned/signed) - int64
- cv::v_float32x4: four 32-bit floating point values (signed) - float - cv::v_float32x4: four 32-bit floating point values (signed) - float
- cv::v_float64x2: two 64-bit floating point values (signed) - double - cv::v_float64x2: two 64-bit floating point values (signed) - double

View File

@ -1805,7 +1805,7 @@ inline v_float32x4 v_broadcast_element(const v_float32x4& a)
return v_setall_f32(v_extract_n<i>(a)); return v_setall_f32(v_extract_n<i>(a));
} }
////// FP16 suport /////// ////// FP16 support ///////
#if CV_FP16 #if CV_FP16
inline v_float32x4 v_load_expand(const float16_t* ptr) inline v_float32x4 v_load_expand(const float16_t* ptr)
{ {

View File

@ -94,7 +94,7 @@ struct v_uint16x8
} }
ushort get0() const ushort get0() const
{ {
return (ushort)wasm_i16x8_extract_lane(val, 0); // wasm_u16x8_extract_lane() unimplemeted yet return (ushort)wasm_i16x8_extract_lane(val, 0); // wasm_u16x8_extract_lane() unimplemented yet
} }
v128_t val; v128_t val;

View File

@ -50,7 +50,7 @@ typedef double v1f64 __attribute__ ((vector_size(8), aligned(8)));
#define msa_ld1q_f32(__a) ((v4f32)__builtin_msa_ld_w(__a, 0)) #define msa_ld1q_f32(__a) ((v4f32)__builtin_msa_ld_w(__a, 0))
#define msa_ld1q_f64(__a) ((v2f64)__builtin_msa_ld_d(__a, 0)) #define msa_ld1q_f64(__a) ((v2f64)__builtin_msa_ld_d(__a, 0))
/* Store 64bits vector elments values to the given memory address. */ /* Store 64bits vector elements values to the given memory address. */
#define msa_st1_s8(__a, __b) (*((v8i8*)(__a)) = __b) #define msa_st1_s8(__a, __b) (*((v8i8*)(__a)) = __b)
#define msa_st1_s16(__a, __b) (*((v4i16*)(__a)) = __b) #define msa_st1_s16(__a, __b) (*((v4i16*)(__a)) = __b)
#define msa_st1_s32(__a, __b) (*((v2i32*)(__a)) = __b) #define msa_st1_s32(__a, __b) (*((v2i32*)(__a)) = __b)
@ -377,7 +377,7 @@ typedef double v1f64 __attribute__ ((vector_size(8), aligned(8)));
}) })
/* Right shift elements in a 128 bits vector by an immediate value, saturate the results and them in a 64 bits vector. /* Right shift elements in a 128 bits vector by an immediate value, saturate the results and them in a 64 bits vector.
Input is signed and outpus is unsigned. */ Input is signed and output is unsigned. */
#define msa_qrshrun_n_s16(__a, __b) \ #define msa_qrshrun_n_s16(__a, __b) \
({ \ ({ \
v8i16 __d = __builtin_msa_srlri_h(__builtin_msa_max_s_h(__builtin_msa_fill_h(0), (v8i16)(__a)), (int)(__b)); \ v8i16 __d = __builtin_msa_srlri_h(__builtin_msa_max_s_h(__builtin_msa_fill_h(0), (v8i16)(__a)), (int)(__b)); \

View File

@ -62,7 +62,7 @@ static String getDeviceTypeString(const cv::ocl::Device& device)
} }
} }
return "unkown"; return "unknown";
} }
} // namespace } // namespace

View File

@ -165,7 +165,7 @@ public:
/** @brief Sets the initial step that will be used in downhill simplex algorithm. /** @brief Sets the initial step that will be used in downhill simplex algorithm.
Step, together with initial point (givin in DownhillSolver::minimize) are two `n`-dimensional Step, together with initial point (given in DownhillSolver::minimize) are two `n`-dimensional
vectors that are used to determine the shape of initial simplex. Roughly said, initial point vectors that are used to determine the shape of initial simplex. Roughly said, initial point
determines the position of a simplex (it will become simplex's centroid), while step determines the determines the position of a simplex (it will become simplex's centroid), while step determines the
spread (size in each dimension) of a simplex. To be more precise, if \f$s,x_0\in\mathbb{R}^n\f$ are spread (size in each dimension) of a simplex. To be more precise, if \f$s,x_0\in\mathbb{R}^n\f$ are

View File

@ -317,7 +317,7 @@ VSX_IMPL_1RG(vec_udword2, wi, vec_float4, wf, xvcvspuxds, vec_ctulo)
* Also there's already an open bug https://bugs.llvm.org/show_bug.cgi?id=31837 * Also there's already an open bug https://bugs.llvm.org/show_bug.cgi?id=31837
* *
* So we're not able to use inline asm and only use built-in functions that CLANG supports * So we're not able to use inline asm and only use built-in functions that CLANG supports
* and use __builtin_convertvector if clang missng any of vector conversions built-in functions * and use __builtin_convertvector if clang missing any of vector conversions built-in functions
* *
* todo: clang asm template bug is fixed, need to reconsider the current workarounds. * todo: clang asm template bug is fixed, need to reconsider the current workarounds.
*/ */
@ -491,7 +491,7 @@ VSX_IMPL_CONV_EVEN_2_4(vec_uint4, vec_double2, vec_ctu, vec_ctuo)
// Only for Eigen! // Only for Eigen!
/* /*
* changing behavior of conversion intrinsics for gcc has effect on Eigen * changing behavior of conversion intrinsics for gcc has effect on Eigen
* so we redfine old behavior again only on gcc, clang * so we redefine old behavior again only on gcc, clang
*/ */
#if !defined(__clang__) || __clang_major__ > 4 #if !defined(__clang__) || __clang_major__ > 4
// ignoring second arg since Eigen only truncates toward zero // ignoring second arg since Eigen only truncates toward zero

View File

@ -250,7 +250,7 @@ cvInitMatNDHeader( CvMatND* mat, int dims, const int* sizes,
for( int i = dims - 1; i >= 0; i-- ) for( int i = dims - 1; i >= 0; i-- )
{ {
if( sizes[i] < 0 ) if( sizes[i] < 0 )
CV_Error( CV_StsBadSize, "one of dimesion sizes is non-positive" ); CV_Error( CV_StsBadSize, "one of dimension sizes is non-positive" );
mat->dim[i].size = sizes[i]; mat->dim[i].size = sizes[i];
if( step > INT_MAX ) if( step > INT_MAX )
CV_Error( CV_StsOutOfRange, "The array is too big" ); CV_Error( CV_StsOutOfRange, "The array is too big" );
@ -545,7 +545,7 @@ cvCreateSparseMat( int dims, const int* sizes, int type )
for( i = 0; i < dims; i++ ) for( i = 0; i < dims; i++ )
{ {
if( sizes[i] <= 0 ) if( sizes[i] <= 0 )
CV_Error( CV_StsBadSize, "one of dimesion sizes is non-positive" ); CV_Error( CV_StsBadSize, "one of dimension sizes is non-positive" );
} }
CvSparseMat* arr = (CvSparseMat*)cvAlloc(sizeof(*arr)+MAX(0,dims-CV_MAX_DIM)*sizeof(arr->size[0])); CvSparseMat* arr = (CvSparseMat*)cvAlloc(sizeof(*arr)+MAX(0,dims-CV_MAX_DIM)*sizeof(arr->size[0]));

View File

@ -53,7 +53,7 @@ cvtabs_32f( const _Ts* src, size_t sstep, _Td* dst, size_t dstep,
} }
} }
// variant for convrsions 16f <-> ... w/o unrolling // variant for conversions 16f <-> ... w/o unrolling
template<typename _Ts, typename _Td> inline void template<typename _Ts, typename _Td> inline void
cvtabs1_32f( const _Ts* src, size_t sstep, _Td* dst, size_t dstep, cvtabs1_32f( const _Ts* src, size_t sstep, _Td* dst, size_t dstep,
Size size, float a, float b ) Size size, float a, float b )
@ -123,7 +123,7 @@ cvt_32f( const _Ts* src, size_t sstep, _Td* dst, size_t dstep,
} }
} }
// variant for convrsions 16f <-> ... w/o unrolling // variant for conversions 16f <-> ... w/o unrolling
template<typename _Ts, typename _Td> inline void template<typename _Ts, typename _Td> inline void
cvt1_32f( const _Ts* src, size_t sstep, _Td* dst, size_t dstep, cvt1_32f( const _Ts* src, size_t sstep, _Td* dst, size_t dstep,
Size size, float a, float b ) Size size, float a, float b )

View File

@ -77,7 +77,7 @@ Replaced y(1,ndim,0.0) ------> y(1,ndim+1,0.0)
*********************************************************************************************************************************** ***********************************************************************************************************************************
The code below was used in tesing the source code. The code below was used in testing the source code.
Created by @SareeAlnaghy Created by @SareeAlnaghy
#include <iostream> #include <iostream>

View File

@ -1519,7 +1519,7 @@ public:
{ {
TlsAbstraction* tls = getTlsAbstraction(); TlsAbstraction* tls = getTlsAbstraction();
if (NULL == tls) if (NULL == tls)
return; // TLS signleton is not available (terminated) return; // TLS singleton is not available (terminated)
ThreadData *pTD = tlsValue == NULL ? (ThreadData*)tls->getData() : (ThreadData*)tlsValue; ThreadData *pTD = tlsValue == NULL ? (ThreadData*)tls->getData() : (ThreadData*)tlsValue;
if (pTD == NULL) if (pTD == NULL)
return; // no OpenCV TLS data for this thread return; // no OpenCV TLS data for this thread
@ -1610,7 +1610,7 @@ public:
TlsAbstraction* tls = getTlsAbstraction(); TlsAbstraction* tls = getTlsAbstraction();
if (NULL == tls) if (NULL == tls)
return NULL; // TLS signleton is not available (terminated) return NULL; // TLS singleton is not available (terminated)
ThreadData* threadData = (ThreadData*)tls->getData(); ThreadData* threadData = (ThreadData*)tls->getData();
if(threadData && threadData->slots.size() > slotIdx) if(threadData && threadData->slots.size() > slotIdx)
@ -1646,7 +1646,7 @@ public:
TlsAbstraction* tls = getTlsAbstraction(); TlsAbstraction* tls = getTlsAbstraction();
if (NULL == tls) if (NULL == tls)
return; // TLS signleton is not available (terminated) return; // TLS singleton is not available (terminated)
ThreadData* threadData = (ThreadData*)tls->getData(); ThreadData* threadData = (ThreadData*)tls->getData();
if(!threadData) if(!threadData)

View File

@ -134,7 +134,7 @@ CV__DNN_INLINE_NS_BEGIN
virtual void setOutShape(const MatShape &outTailShape = MatShape()) = 0; virtual void setOutShape(const MatShape &outTailShape = MatShape()) = 0;
/** @deprecated Use flag `produce_cell_output` in LayerParams. /** @deprecated Use flag `produce_cell_output` in LayerParams.
* @brief Specifies either interpret first dimension of input blob as timestamp dimenion either as sample. * @brief Specifies either interpret first dimension of input blob as timestamp dimension either as sample.
* *
* If flag is set to true then shape of input blob will be interpreted as [`T`, `N`, `[data dims]`] where `T` specifies number of timestamps, `N` is number of independent streams. * If flag is set to true then shape of input blob will be interpreted as [`T`, `N`, `[data dims]`] where `T` specifies number of timestamps, `N` is number of independent streams.
* In this case each forward() call will iterate through `T` timestamps and update layer's state `T` times. * In this case each forward() call will iterate through `T` timestamps and update layer's state `T` times.

View File

@ -84,7 +84,7 @@ namespace cv { namespace dnn { namespace cuda4dnn { namespace kernels {
* Reasoning: * Reasoning:
* ---------- * ----------
* Suppose an item's indices in the output tensor is [o1, o2, ...]. The indices in the input * Suppose an item's indices in the output tensor is [o1, o2, ...]. The indices in the input
* tensor will be [o1 + off1, o2 + off2, ...]. The rest of the elements in the input are igored. * tensor will be [o1 + off1, o2 + off2, ...]. The rest of the elements in the input are ignored.
* *
* If the size of the first axis of the input and output tensor is unity, the input and output indices * If the size of the first axis of the input and output tensor is unity, the input and output indices
* for all the elements will be of the form be [0, o2 + off2, ...] and [0, o2, ...] respectively. Note that * for all the elements will be of the form be [0, o2 + off2, ...] and [0, o2, ...] respectively. Note that

View File

@ -227,7 +227,7 @@ namespace cv { namespace dnn { namespace cuda4dnn { namespace csl { namespace cu
if (std::is_same<T, half>::value) if (std::is_same<T, half>::value)
CUDA4DNN_CHECK_CUDNN(cudnnSetConvolutionMathType(descriptor, CUDNN_TENSOR_OP_MATH)); CUDA4DNN_CHECK_CUDNN(cudnnSetConvolutionMathType(descriptor, CUDNN_TENSOR_OP_MATH));
} catch (...) { } catch (...) {
/* cudnnDestroyConvolutionDescriptor will not fail for a valid desriptor object */ /* cudnnDestroyConvolutionDescriptor will not fail for a valid descriptor object */
CUDA4DNN_CHECK_CUDNN(cudnnDestroyConvolutionDescriptor(descriptor)); CUDA4DNN_CHECK_CUDNN(cudnnDestroyConvolutionDescriptor(descriptor));
throw; throw;
} }

View File

@ -266,7 +266,7 @@ namespace cv { namespace dnn { namespace cuda4dnn { namespace csl {
/** page-locks \p size_in_bytes bytes of memory starting from \p ptr_ /** page-locks \p size_in_bytes bytes of memory starting from \p ptr_
* *
* Pre-conditons: * Pre-conditions:
* - host memory should be unregistered * - host memory should be unregistered
*/ */
MemoryLockGuard(void* ptr_, std::size_t size_in_bytes) { MemoryLockGuard(void* ptr_, std::size_t size_in_bytes) {

View File

@ -33,7 +33,7 @@ namespace cv { namespace dnn { namespace cuda4dnn { namespace csl {
* *
* A `DevicePtr<T>` can implicitly convert to `DevicePtr<const T>`. * A `DevicePtr<T>` can implicitly convert to `DevicePtr<const T>`.
* *
* Specalizations: * Specializations:
* - DevicePtr<void>/DevicePtr<const void> do not support pointer arithmetic (but relational operators are provided) * - DevicePtr<void>/DevicePtr<const void> do not support pointer arithmetic (but relational operators are provided)
* - any device pointer pointing to mutable memory is implicitly convertible to DevicePtr<void> * - any device pointer pointing to mutable memory is implicitly convertible to DevicePtr<void>
* - any device pointer is implicitly convertible to DevicePtr<const void> * - any device pointer is implicitly convertible to DevicePtr<const void>

View File

@ -67,7 +67,7 @@ namespace cv { namespace dnn { namespace cuda4dnn { namespace csl {
*/ */
template <class T> template <class T>
class Tensor { class Tensor {
static_assert(std::is_standard_layout<T>::value, "T must staisfy StandardLayoutType"); static_assert(std::is_standard_layout<T>::value, "T must satisfy StandardLayoutType");
public: public:
using value_type = typename ManagedPtr<T>::element_type; using value_type = typename ManagedPtr<T>::element_type;
@ -553,7 +553,7 @@ namespace cv { namespace dnn { namespace cuda4dnn { namespace csl {
* - [start, end) represents a forward range containing the length of the axes in order * - [start, end) represents a forward range containing the length of the axes in order
* - the number of axis lengths must be less than or equal to the rank * - the number of axis lengths must be less than or equal to the rank
* - at most one axis length is allowed for length deduction * - at most one axis length is allowed for length deduction
* - the lengths provided must ensure that the total number of elements remains unchnged * - the lengths provided must ensure that the total number of elements remains unchanged
* *
* Exception Guarantee: Strong * Exception Guarantee: Strong
*/ */
@ -898,7 +898,7 @@ namespace cv { namespace dnn { namespace cuda4dnn { namespace csl {
* - [start, end) represents a forward range containing length of the axes in order starting from axis zero * - [start, end) represents a forward range containing length of the axes in order starting from axis zero
* - the number of axis lengths must be less than or equal to the tensor rank * - the number of axis lengths must be less than or equal to the tensor rank
* - at most one axis length is allowed for length deduction * - at most one axis length is allowed for length deduction
* - the lengths provided must ensure that the total number of elements remains unchnged * - the lengths provided must ensure that the total number of elements remains unchanged
* *
* Exception Guarantee: Strong * Exception Guarantee: Strong
*/ */

View File

@ -35,7 +35,7 @@ namespace cv { namespace dnn { namespace cuda4dnn { namespace csl {
* Pre-conditions: * Pre-conditions:
* - \p dest and \p src must have the same shape * - \p dest and \p src must have the same shape
* *
* Exception Gaurantee: Basic * Exception Guarantee: Basic
*/ */
template <class T> inline template <class T> inline
void copy(const Stream& stream, TensorSpan<T> dest, TensorView<T> src) { void copy(const Stream& stream, TensorSpan<T> dest, TensorView<T> src) {
@ -50,7 +50,7 @@ namespace cv { namespace dnn { namespace cuda4dnn { namespace csl {
* - \p A and \p B must meet the mathematical requirements for matrix multiplication * - \p A and \p B must meet the mathematical requirements for matrix multiplication
* - \p result must be large enough to hold the result * - \p result must be large enough to hold the result
* *
* Exception Gaurantee: Basic * Exception Guarantee: Basic
*/ */
template <class T> inline template <class T> inline
void gemm(const cublas::Handle& handle, T beta, TensorSpan<T> result, T alpha, bool transa, TensorView<T> A, bool transb, TensorView<T> B) { void gemm(const cublas::Handle& handle, T beta, TensorSpan<T> result, T alpha, bool transa, TensorView<T> A, bool transb, TensorView<T> B) {
@ -108,7 +108,7 @@ namespace cv { namespace dnn { namespace cuda4dnn { namespace csl {
* Pre-conditions: * Pre-conditions:
* - \p A and \p result must be compatible tensors * - \p A and \p result must be compatible tensors
* *
* Exception Gaurantee: Basic * Exception Guarantee: Basic
*/ */
template <class T> inline template <class T> inline
void softmax(const cudnn::Handle& handle, TensorSpan<T> output, TensorView<T> input, int channel_axis, bool log) { void softmax(const cudnn::Handle& handle, TensorSpan<T> output, TensorView<T> input, int channel_axis, bool log) {

View File

@ -103,7 +103,7 @@ namespace cv { namespace dnn { namespace cuda4dnn {
CV_Assert(pooling_order == pads_end.size()); CV_Assert(pooling_order == pads_end.size());
/* cuDNN rounds down by default; hence, if ceilMode is false, we do nothing /* cuDNN rounds down by default; hence, if ceilMode is false, we do nothing
* otherwise, we add extra padding towards the end so that the convolution arithmetic yeilds * otherwise, we add extra padding towards the end so that the convolution arithmetic yields
* the correct output size without having to deal with fancy fractional sizes * the correct output size without having to deal with fancy fractional sizes
*/ */
auto pads_end_modified = pads_end; auto pads_end_modified = pads_end;

View File

@ -622,7 +622,7 @@ void InfEngineNgraphNet::forward(const std::vector<Ptr<BackendWrapper> >& outBlo
try { try {
wrapper->outProms[processedOutputs].setException(std::current_exception()); wrapper->outProms[processedOutputs].setException(std::current_exception());
} catch(...) { } catch(...) {
CV_LOG_ERROR(NULL, "DNN: Exception occured during async inference exception propagation"); CV_LOG_ERROR(NULL, "DNN: Exception occurred during async inference exception propagation");
} }
} }
} }
@ -635,7 +635,7 @@ void InfEngineNgraphNet::forward(const std::vector<Ptr<BackendWrapper> >& outBlo
try { try {
wrapper->outProms[processedOutputs].setException(e); wrapper->outProms[processedOutputs].setException(e);
} catch(...) { } catch(...) {
CV_LOG_ERROR(NULL, "DNN: Exception occured during async inference exception propagation"); CV_LOG_ERROR(NULL, "DNN: Exception occurred during async inference exception propagation");
} }
} }
} }

View File

@ -116,7 +116,7 @@ message AttributeProto {
// The type field MUST be present for this version of the IR. // The type field MUST be present for this version of the IR.
// For 0.0.1 versions of the IR, this field was not defined, and // For 0.0.1 versions of the IR, this field was not defined, and
// implementations needed to use has_field hueristics to determine // implementations needed to use has_field heuristics to determine
// which value field was in use. For IR_VERSION 0.0.2 or later, this // which value field was in use. For IR_VERSION 0.0.2 or later, this
// field MUST be set and match the f|i|s|t|... field in use. This // field MUST be set and match the f|i|s|t|... field in use. This
// change was made to accommodate proto3 implementations. // change was made to accommodate proto3 implementations.
@ -323,7 +323,7 @@ message TensorProto {
// For float and complex64 values // For float and complex64 values
// Complex64 tensors are encoded as a single array of floats, // Complex64 tensors are encoded as a single array of floats,
// with the real components appearing in odd numbered positions, // with the real components appearing in odd numbered positions,
// and the corresponding imaginary component apparing in the // and the corresponding imaginary component appearing in the
// subsequent even numbered position. (e.g., [1.0 + 2.0i, 3.0 + 4.0i] // subsequent even numbered position. (e.g., [1.0 + 2.0i, 3.0 + 4.0i]
// is encoded as [1.0, 2.0 ,3.0 ,4.0] // is encoded as [1.0, 2.0 ,3.0 ,4.0]
// When this field is present, the data_type field MUST be FLOAT or COMPLEX64. // When this field is present, the data_type field MUST be FLOAT or COMPLEX64.
@ -373,7 +373,7 @@ message TensorProto {
// For double // For double
// Complex64 tensors are encoded as a single array of doubles, // Complex64 tensors are encoded as a single array of doubles,
// with the real components appearing in odd numbered positions, // with the real components appearing in odd numbered positions,
// and the corresponding imaginary component apparing in the // and the corresponding imaginary component appearing in the
// subsequent even numbered position. (e.g., [1.0 + 2.0i, 3.0 + 4.0i] // subsequent even numbered position. (e.g., [1.0 + 2.0i, 3.0 + 4.0i]
// is encoded as [1.0, 2.0 ,3.0 ,4.0] // is encoded as [1.0, 2.0 ,3.0 ,4.0]
// When this field is present, the data_type field MUST be DOUBLE or COMPLEX128 // When this field is present, the data_type field MUST be DOUBLE or COMPLEX128

View File

@ -350,7 +350,7 @@ namespace cv { namespace dnn {
private: private:
/* The same tensor memory can be reused by different layers whenever possible. /* The same tensor memory can be reused by different layers whenever possible.
* Hence, it is possible for different backend warppers to point to the same memory. * Hence, it is possible for different backend wrappers to point to the same memory.
* However, it may use only a part of that memory and have a different shape. * However, it may use only a part of that memory and have a different shape.
* *
* We store the common information such as device tensor and its corresponding host memory in * We store the common information such as device tensor and its corresponding host memory in

View File

@ -243,7 +243,7 @@ Context::Context()
queueCreateInfo.sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO; queueCreateInfo.sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
queueCreateInfo.queueFamilyIndex = kQueueFamilyIndex; queueCreateInfo.queueFamilyIndex = kQueueFamilyIndex;
queueCreateInfo.queueCount = 1; // create one queue in this family. We don't need more. queueCreateInfo.queueCount = 1; // create one queue in this family. We don't need more.
float queuePriorities = 1.0; // we only have one queue, so this is not that imporant. float queuePriorities = 1.0; // we only have one queue, so this is not that important.
queueCreateInfo.pQueuePriorities = &queuePriorities; queueCreateInfo.pQueuePriorities = &queuePriorities;
VkDeviceCreateInfo deviceCreateInfo = {}; VkDeviceCreateInfo deviceCreateInfo = {};

View File

@ -398,7 +398,7 @@ code which is distributed under GPL.
class CV_EXPORTS_W MSER : public Feature2D class CV_EXPORTS_W MSER : public Feature2D
{ {
public: public:
/** @brief Full consturctor for %MSER detector /** @brief Full constructor for %MSER detector
@param _delta it compares \f$(size_{i}-size_{i-delta})/size_{i-delta}\f$ @param _delta it compares \f$(size_{i}-size_{i-delta})/size_{i-delta}\f$
@param _min_area prune the area which smaller than minArea @param _min_area prune the area which smaller than minArea

View File

@ -36,7 +36,7 @@ void image_derivatives_scharr(const cv::Mat& src, cv::Mat& dst, int xorder, int
// Nonlinear diffusion filtering scalar step // Nonlinear diffusion filtering scalar step
void nld_step_scalar(cv::Mat& Ld, const cv::Mat& c, cv::Mat& Lstep, float stepsize); void nld_step_scalar(cv::Mat& Ld, const cv::Mat& c, cv::Mat& Lstep, float stepsize);
// For non-maxima suppresion // For non-maxima suppression
bool check_maximum_neighbourhood(const cv::Mat& img, int dsize, float value, int row, int col, bool same_img); bool check_maximum_neighbourhood(const cv::Mat& img, int dsize, float value, int row, int col, bool same_img);
// Image downsampling // Image downsampling

View File

@ -983,7 +983,7 @@ extractMSER_8uC3( const Mat& src,
double s = (double)(lr->size-lr->sizei)/(lr->dt-lr->di); double s = (double)(lr->size-lr->sizei)/(lr->dt-lr->di);
if ( s < lr->s ) if ( s < lr->s )
{ {
// skip the first one and check stablity // skip the first one and check stability
if ( i > lr->reinit+1 && MSCRStableCheck( lr, params ) ) if ( i > lr->reinit+1 && MSCRStableCheck( lr, params ) )
{ {
if ( lr->tmsr == NULL ) if ( lr->tmsr == NULL )

View File

@ -131,7 +131,7 @@ float optimizeSimplexDownhill(T* points, int n, F func, float* vals = NULL )
} }
if (val_r<vals[0]) { if (val_r<vals[0]) {
// value is smaller than smalest in simplex // value is smaller than smallest in simplex
// expand some more to see if it drops further // expand some more to see if it drops further
for (int i=0; i<n; ++i) { for (int i=0; i<n; ++i) {

View File

@ -95,7 +95,7 @@ Internally, cv::GComputation::apply() compiles the captured graph for
the given input parameters and executes the compiled graph on data the given input parameters and executes the compiled graph on data
immediately. immediately.
There is a number important concepts can be outlines with this examle: There is a number important concepts can be outlines with this example:
* Graph declaration and graph execution are distinct steps; * Graph declaration and graph execution are distinct steps;
* Graph is built implicitly from a sequence of G-API expressions; * Graph is built implicitly from a sequence of G-API expressions;
* G-API supports function-like calls -- e.g. cv::gapi::resize(), and * G-API supports function-like calls -- e.g. cv::gapi::resize(), and

View File

@ -36,7 +36,7 @@ software optimization due to diffent costs of memory access on modern
computer architectures -- the more data is reused in the first level computer architectures -- the more data is reused in the first level
cache, the more efficient pipeline is. cache, the more efficient pipeline is.
Definitely the aforementioned techinques can be applied manually -- Definitely the aforementioned techniques can be applied manually --
but it requires extra skills and knowledge of the target platform and but it requires extra skills and knowledge of the target platform and
the algorithm implementation changes irrevocably -- becoming more the algorithm implementation changes irrevocably -- becoming more
specific, less flexible, and harder to extend and maintain. specific, less flexible, and harder to extend and maintain.

View File

@ -242,7 +242,7 @@ Graph *protocol* defines what arguments a computation was defined on
- A type name (every operation is a C++ type); - A type name (every operation is a C++ type);
- Operation signature (similar to ~std::function<>~); - Operation signature (similar to ~std::function<>~);
- Operation identifier (a string); - Operation identifier (a string);
- Metadata callback -- desribe what is the output value format(s), - Metadata callback -- describe what is the output value format(s),
given the input and arguments. given the input and arguments.
- Use ~OpType::on(...)~ to use a new kernel ~OpType~ to construct graphs. - Use ~OpType::on(...)~ to use a new kernel ~OpType~ to construct graphs.
#+LaTeX: {\footnotesize #+LaTeX: {\footnotesize

View File

@ -124,7 +124,7 @@ protected:
F m_f; F m_f;
}; };
// FIXME: This is an ugly ad-hoc imlpementation. TODO: refactor // FIXME: This is an ugly ad-hoc implementation. TODO: refactor
namespace detail namespace detail
{ {

View File

@ -39,7 +39,7 @@ namespace fluid
*/ */
GAPI_EXPORTS cv::gapi::GBackend backend(); GAPI_EXPORTS cv::gapi::GBackend backend();
/** @} */ /** @} */
} // namespace flud } // namespace fluid
} // namespace gapi } // namespace gapi

View File

@ -148,7 +148,7 @@ public:
* @param outs vector of output cv::Mat objects to produce by the * @param outs vector of output cv::Mat objects to produce by the
* computation. * computation.
* *
* Numbers of elements in ins/outs vectos must match numbers of * Numbers of elements in ins/outs vectors must match numbers of
* inputs/outputs which were used to define the source GComputation. * inputs/outputs which were used to define the source GComputation.
*/ */
void operator() (const std::vector<cv::Mat> &ins, // Compatibility overload void operator() (const std::vector<cv::Mat> &ins, // Compatibility overload

View File

@ -314,7 +314,7 @@ public:
* @param args compilation arguments for underlying compilation * @param args compilation arguments for underlying compilation
* process. * process.
* *
* Numbers of elements in ins/outs vectos must match numbers of * Numbers of elements in ins/outs vectors must match numbers of
* inputs/outputs which were used to define this GComputation. * inputs/outputs which were used to define this GComputation.
*/ */
void apply(const std::vector<cv::Mat>& ins, // Compatibility overload void apply(const std::vector<cv::Mat>& ins, // Compatibility overload
@ -373,7 +373,7 @@ public:
// template<typename... Ts> // template<typename... Ts>
// GCompiled compile(const Ts&... metas, GCompileArgs &&args) // GCompiled compile(const Ts&... metas, GCompileArgs &&args)
// //
// But not all compilers can hande this (and seems they shouldn't be able to). // But not all compilers can handle this (and seems they shouldn't be able to).
// FIXME: SFINAE looks ugly in the generated documentation // FIXME: SFINAE looks ugly in the generated documentation
/** /**
* @overload * @overload

View File

@ -101,7 +101,7 @@ namespace detail
template<> struct GTypeOf<cv::gapi::own::Scalar> { using type = cv::GScalar; }; template<> struct GTypeOf<cv::gapi::own::Scalar> { using type = cv::GScalar; };
template<typename U> struct GTypeOf<std::vector<U> > { using type = cv::GArray<U>; }; template<typename U> struct GTypeOf<std::vector<U> > { using type = cv::GArray<U>; };
// FIXME: This is not quite correct since IStreamSource may produce not only Mat but also Scalar // FIXME: This is not quite correct since IStreamSource may produce not only Mat but also Scalar
// and vector data. TODO: Extend the type dispatchig on these types too. // and vector data. TODO: Extend the type dispatching on these types too.
template<> struct GTypeOf<cv::gapi::wip::IStreamSource::Ptr> { using type = cv::GMat;}; template<> struct GTypeOf<cv::gapi::wip::IStreamSource::Ptr> { using type = cv::GMat;};
template<class T> using g_type_of_t = typename GTypeOf<T>::type; template<class T> using g_type_of_t = typename GTypeOf<T>::type;

View File

@ -94,7 +94,7 @@ protected:
F m_f; F m_f;
}; };
// FIXME: This is an ugly ad-hoc imlpementation. TODO: refactor // FIXME: This is an ugly ad-hoc implementation. TODO: refactor
namespace detail namespace detail
{ {

View File

@ -35,7 +35,7 @@ namespace wip {
* This class implements IStreamSource interface. * This class implements IStreamSource interface.
* Its constructor takes the same parameters as cv::VideoCapture does. * Its constructor takes the same parameters as cv::VideoCapture does.
* *
* Please make sure that videoio OpenCV module is avaiable before using * Please make sure that videoio OpenCV module is available before using
* this in your application (G-API doesn't depend on it directly). * this in your application (G-API doesn't depend on it directly).
* *
* @note stream sources are passed to G-API via shared pointers, so * @note stream sources are passed to G-API via shared pointers, so

View File

@ -7,7 +7,7 @@
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
if (argc < 2) { if (argc < 2) {
std::cerr << "Filename requried" << std::endl; std::cerr << "Filename required" << std::endl;
return 1; return 1;
} }

View File

@ -61,13 +61,13 @@ cv::Size cv::gapi::wip::draw::FTTextRender::Priv::getTextSize(const std::wstring
// or decrement (for right-to-left writing) the pen position after a // or decrement (for right-to-left writing) the pen position after a
// glyph has been rendered when processing text // glyph has been rendered when processing text
// //
// widht (bitmap->width) - The width of glyph // width (bitmap->width) - The width of glyph
// //
// //
// Algorihm to compute size of the text bounding box: // Algorithm to compute size of the text bounding box:
// //
// 1) Go through all symbols and shift pen position and save glyph parameters (left, advance, width) // 1) Go through all symbols and shift pen position and save glyph parameters (left, advance, width)
// If left + pen postion < 0 set left to 0. For example it's maybe happened // If left + pen position < 0 set left to 0. For example it's maybe happened
// if we print first letter 'J' or any other letter with negative 'left' // if we print first letter 'J' or any other letter with negative 'left'
// We want to render glyph in pen position + left, so we must't allow it to be negative // We want to render glyph in pen position + left, so we must't allow it to be negative
// //

View File

@ -184,7 +184,7 @@ void drawPrimitivesOCV(cv::Mat& in,
cv::Point org(0, mask.rows - baseline); cv::Point org(0, mask.rows - baseline);
cv::putText(mask, tp.text, org, tp.ff, tp.fs, 255, tp.thick); cv::putText(mask, tp.text, org, tp.ff, tp.fs, 255, tp.thick);
// Org is bottom left point, trasform it to top left point for blendImage // Org is bottom left point, transform it to top left point for blendImage
cv::Point tl(tp.org.x, tp.org.y - mask.size().height + baseline); cv::Point tl(tp.org.x, tp.org.y - mask.size().height + baseline);
blendTextMask(in, mask, tl, tp.color); blendTextMask(in, mask, tl, tp.color);
@ -208,7 +208,7 @@ void drawPrimitivesOCV(cv::Mat& in,
cv::Point org(0, mask.rows - baseline); cv::Point org(0, mask.rows - baseline);
ftpr->putText(mask, ftp.text, org, ftp.fh); ftpr->putText(mask, ftp.text, org, ftp.fh);
// Org is bottom left point, trasform it to top left point for blendImage // Org is bottom left point, transform it to top left point for blendImage
cv::Point tl(ftp.org.x, ftp.org.y - mask.size().height + baseline); cv::Point tl(ftp.org.x, ftp.org.y - mask.size().height + baseline);
blendTextMask(in, mask, tl, color); blendTextMask(in, mask, tl, color);

View File

@ -1823,7 +1823,7 @@ GAPI_FLUID_KERNEL(GFluidBayerGR2RGB, cv::gapi::imgproc::GBayerGR2RGB, false)
} }
}; };
} // namespace fliud } // namespace fluid
} // namespace gapi } // namespace gapi
} // namespace cv } // namespace cv

View File

@ -209,7 +209,7 @@ RUN_MEDBLUR3X3_IMPL( float)
#undef RUN_MEDBLUR3X3_IMPL #undef RUN_MEDBLUR3X3_IMPL
} // namespace fliud } // namespace fluid
} // namespace gapi } // namespace gapi
} // namespace cv } // namespace cv

View File

@ -25,7 +25,7 @@ using cv::gapi::own::rintd;
//-------------------------------- //--------------------------------
// //
// Macros for mappig of data types // Macros for mapping of data types
// //
//-------------------------------- //--------------------------------

View File

@ -185,7 +185,7 @@ struct IEUnit {
// The practice shows that not all inputs and not all outputs // The practice shows that not all inputs and not all outputs
// are mandatory to specify in IE model. // are mandatory to specify in IE model.
// So what we're concerned here about is: // So what we're concerned here about is:
// if opeation's (not topology's) input/output number is // if operation's (not topology's) input/output number is
// greater than 1, then we do care about input/output layer // greater than 1, then we do care about input/output layer
// names. Otherwise, names are picked up automatically. // names. Otherwise, names are picked up automatically.
// TODO: Probably this check could be done at the API entry point? (gnet) // TODO: Probably this check could be done at the API entry point? (gnet)

View File

@ -15,7 +15,7 @@
namespace cv { namespace gimpl { namespace cv { namespace gimpl {
// NB: This is what a "Kernel Package" from the origianl Wiki doc should be. // NB: This is what a "Kernel Package" from the original Wiki doc should be.
void loadOCLImgProc(std::map<std::string, cv::GOCLKernel> &kmap); void loadOCLImgProc(std::map<std::string, cv::GOCLKernel> &kmap);
}} }}

View File

@ -32,7 +32,7 @@ namespace
// //
// In this case, Data object is part of Island A if and only if: // In this case, Data object is part of Island A if and only if:
// - Data object's producer is part of Island A, // - Data object's producer is part of Island A,
// - AND any of Data obejct's consumers is part of Island A. // - AND any of Data object's consumers is part of Island A.
// //
// Op["island0"] --> Data[ ? ] --> Op["island0"] // Op["island0"] --> Data[ ? ] --> Op["island0"]
// : // :
@ -147,7 +147,7 @@ void cv::gimpl::passes::checkIslands(ade::passes::PassContext &ctx)
// Run the recursive traversal process as described in 5/a-d. // Run the recursive traversal process as described in 5/a-d.
// This process is like a flood-fill traversal for island. // This process is like a flood-fill traversal for island.
// If there's to distint successful flood-fills happened for the same island // If there's to distinct successful flood-fills happened for the same island
// name, there are two islands with this name. // name, there are two islands with this name.
std::stack<ade::NodeHandle> stack; std::stack<ade::NodeHandle> stack;
stack.push(tagged_nh); stack.push(tagged_nh);

View File

@ -198,7 +198,7 @@ void sync_data(cv::GRunArgs &results, cv::GRunArgsP &outputs)
// "Stop" is received. // "Stop" is received.
// //
// Queue reader is the class which encapsulates all this logic and // Queue reader is the class which encapsulates all this logic and
// provies threads with a managed storage and an easy API to obtain // provides threads with a managed storage and an easy API to obtain
// data. // data.
class QueueReader class QueueReader
{ {

View File

@ -67,7 +67,7 @@ inline std::ostream& operator<<(std::ostream& os, bitwiseOp op)
// initMatsRandU - function that is used to initialize input/output data // initMatsRandU - function that is used to initialize input/output data
// FIXTURE_API(mathOp,bool,double,bool) - test-specific parameters (types) // FIXTURE_API(mathOp,bool,double,bool) - test-specific parameters (types)
// 4 - number of test-specific parameters // 4 - number of test-specific parameters
// opType, testWithScalar, scale, doReverseOp - test-spcific parameters (names) // opType, testWithScalar, scale, doReverseOp - test-specific parameters (names)
// //
// We get: // We get:
// 1. Default parameters: int type, cv::Size sz, int dtype, getCompileArgs() function // 1. Default parameters: int type, cv::Size sz, int dtype, getCompileArgs() function

View File

@ -294,7 +294,7 @@ TEST_P(Polar2CartTest, AccuracyTest)
// expect of single-precision elementary functions implementation. // expect of single-precision elementary functions implementation.
// //
// However, good idea is making such threshold configurable: parameter // However, good idea is making such threshold configurable: parameter
// of this test - which a specific test istantiation could setup. // of this test - which a specific test instantiation could setup.
// //
// Note that test instantiation for the OpenCV back-end could even let // Note that test instantiation for the OpenCV back-end could even let
// the threshold equal to zero, as CV back-end calls the same kernel. // the threshold equal to zero, as CV back-end calls the same kernel.
@ -340,7 +340,7 @@ TEST_P(Cart2PolarTest, AccuracyTest)
// expect of single-precision elementary functions implementation. // expect of single-precision elementary functions implementation.
// //
// However, good idea is making such threshold configurable: parameter // However, good idea is making such threshold configurable: parameter
// of this test - which a specific test istantiation could setup. // of this test - which a specific test instantiation could setup.
// //
// Note that test instantiation for the OpenCV back-end could even let // Note that test instantiation for the OpenCV back-end could even let
// the threshold equal to zero, as CV back-end calls the same kernel. // the threshold equal to zero, as CV back-end calls the same kernel.

View File

@ -19,7 +19,7 @@ namespace opencv_test
// initMatrixRandN - function that is used to initialize input/output data // initMatrixRandN - function that is used to initialize input/output data
// FIXTURE_API(CompareMats,int,int) - test-specific parameters (types) // FIXTURE_API(CompareMats,int,int) - test-specific parameters (types)
// 3 - number of test-specific parameters // 3 - number of test-specific parameters
// cmpF, kernSize, borderType - test-spcific parameters (names) // cmpF, kernSize, borderType - test-specific parameters (names)
// //
// We get: // We get:
// 1. Default parameters: int type, cv::Size sz, int dtype, getCompileArgs() function // 1. Default parameters: int type, cv::Size sz, int dtype, getCompileArgs() function

View File

@ -426,7 +426,7 @@ struct output_args_lifetime : ::testing::Test{
static constexpr const int num_of_requests = 20; static constexpr const int num_of_requests = 20;
}; };
TYPED_TEST_CASE_P(output_args_lifetime); TYPED_TEST_CASE_P(output_args_lifetime);
//There are intentionaly no actual checks (asserts and verify) in output_args_lifetime tests. //There are intentionally no actual checks (asserts and verify) in output_args_lifetime tests.
//They are more of example use-cases than real tests. (ASAN/valgrind can still catch issues here) //They are more of example use-cases than real tests. (ASAN/valgrind can still catch issues here)
TYPED_TEST_P(output_args_lifetime, callback){ TYPED_TEST_P(output_args_lifetime, callback){

View File

@ -64,7 +64,7 @@ TEST(GAPI, Mat_Recreate)
EXPECT_EQ(m3.at<uchar>(0, 0), m4.at<uchar>(0, 0)); EXPECT_EQ(m3.at<uchar>(0, 0), m4.at<uchar>(0, 0));
// cv::Mat::create must be NOOP if we don't change the meta, // cv::Mat::create must be NOOP if we don't change the meta,
// even if the origianl mat is created from handle. // even if the original mat is created from handle.
m4.create(3, 3, CV_8U); m4.create(3, 3, CV_8U);
EXPECT_EQ(m3.rows, m4.rows); EXPECT_EQ(m3.rows, m4.rows);
EXPECT_EQ(m3.cols, m4.cols); EXPECT_EQ(m3.cols, m4.cols);

View File

@ -1151,7 +1151,7 @@ CVAPI(CvScalar) cvColorToScalar( double packed_color, int arrtype );
/** @brief Returns the polygon points which make up the given ellipse. /** @brief Returns the polygon points which make up the given ellipse.
The ellipse is define by the box of size 'axes' rotated 'angle' around the 'center'. A partial The ellipse is define by the box of size 'axes' rotated 'angle' around the 'center'. A partial
sweep of the ellipse arc can be done by spcifying arc_start and arc_end to be something other than sweep of the ellipse arc can be done by specifying arc_start and arc_end to be something other than
0 and 360, respectively. The input array 'pts' must be large enough to hold the result. The total 0 and 360, respectively. The input array 'pts' must be large enough to hold the result. The total
number of points stored into 'pts' is returned by this function. number of points stored into 'pts' is returned by this function.
@see cv::ellipse2Poly @see cv::ellipse2Poly

View File

@ -630,7 +630,7 @@ approxPolyDP_( const Point_<T>* src_contour, int count0, Point_<T>* dst_contour,
WRITE_PT( src_contour[count-1] ); WRITE_PT( src_contour[count-1] );
// last stage: do final clean-up of the approximated contour - // last stage: do final clean-up of the approximated contour -
// remove extra points on the [almost] stright lines. // remove extra points on the [almost] straight lines.
is_closed = is_closed0; is_closed = is_closed0;
count = new_count; count = new_count;
pos = is_closed ? count - 1 : 0; pos = is_closed ? count - 1 : 0;

View File

@ -776,7 +776,7 @@ cv::RotatedRect cv::fitEllipseDirect( InputArray _points )
namespace cv namespace cv
{ {
// Calculates bounding rectagnle of a point set or retrieves already calculated // Calculates bounding rectangle of a point set or retrieves already calculated
static Rect pointSetBoundingRect( const Mat& points ) static Rect pointSetBoundingRect( const Mat& points )
{ {
int npoints = points.checkVector(2); int npoints = points.checkVector(2);
@ -1392,7 +1392,7 @@ cvFitEllipse2( const CvArr* array )
return cvBox2D(cv::fitEllipse(points)); return cvBox2D(cv::fitEllipse(points));
} }
/* Calculates bounding rectagnle of a point set or retrieves already calculated */ /* Calculates bounding rectangle of a point set or retrieves already calculated */
CV_IMPL CvRect CV_IMPL CvRect
cvBoundingRect( CvArr* array, int update ) cvBoundingRect( CvArr* array, int update )
{ {

View File

@ -325,7 +325,7 @@ void CV_ApproxPolyTest::run( int /*start_from*/ )
if( DstSeq == NULL ) if( DstSeq == NULL )
{ {
ts->printf( cvtest::TS::LOG, ts->printf( cvtest::TS::LOG,
"cvApproxPoly returned NULL for contour #%d, espilon = %g\n", i, Eps ); "cvApproxPoly returned NULL for contour #%d, epsilon = %g\n", i, Eps );
code = cvtest::TS::FAIL_INVALID_OUTPUT; code = cvtest::TS::FAIL_INVALID_OUTPUT;
goto _exit_; goto _exit_;
} // if( DstSeq == NULL ) } // if( DstSeq == NULL )

View File

@ -60,7 +60,7 @@ namespace opencv_test { namespace {
// 6 - partial intersection, rectangle on top of different size // 6 - partial intersection, rectangle on top of different size
// 7 - full intersection, rectangle fully enclosed in the other // 7 - full intersection, rectangle fully enclosed in the other
// 8 - partial intersection, rectangle corner just touching. point contact // 8 - partial intersection, rectangle corner just touching. point contact
// 9 - partial intersetion. rectangle side by side, line contact // 9 - partial intersection. rectangle side by side, line contact
static void compare(const std::vector<Point2f>& test, const std::vector<Point2f>& target) static void compare(const std::vector<Point2f>& test, const std::vector<Point2f>& target)
{ {

View File

@ -44,7 +44,7 @@ foreach(file ${seed_project_files_rel})
endforeach() endforeach()
list(APPEND depends gen_opencv_java_source "${OPENCV_DEPHELPER}/gen_opencv_java_source") list(APPEND depends gen_opencv_java_source "${OPENCV_DEPHELPER}/gen_opencv_java_source")
ocv_copyfiles_add_target(${the_module}_android_source_copy JAVA_SRC_COPY "Copy Java(Andoid SDK) source files" ${depends}) ocv_copyfiles_add_target(${the_module}_android_source_copy JAVA_SRC_COPY "Copy Java(Android SDK) source files" ${depends})
file(REMOVE "${OPENCV_DEPHELPER}/${the_module}_android_source_copy") # force rebuild after CMake run file(REMOVE "${OPENCV_DEPHELPER}/${the_module}_android_source_copy") # force rebuild after CMake run
set(depends ${the_module}_android_source_copy "${OPENCV_DEPHELPER}/${the_module}_android_source_copy") set(depends ${the_module}_android_source_copy "${OPENCV_DEPHELPER}/${the_module}_android_source_copy")
@ -134,7 +134,7 @@ foreach(file ${__files_rel})
endforeach() endforeach()
list(APPEND depends gen_opencv_java_source "${OPENCV_DEPHELPER}/gen_opencv_java_source") list(APPEND depends gen_opencv_java_source "${OPENCV_DEPHELPER}/gen_opencv_java_source")
ocv_copyfiles_add_target(${the_module}_android_source_copy JAVA_SRC_COPY "Copy Java(Andoid SDK) source files" ${depends}) ocv_copyfiles_add_target(${the_module}_android_source_copy JAVA_SRC_COPY "Copy Java(Android SDK) source files" ${depends})
file(REMOVE "${OPENCV_DEPHELPER}/${the_module}_android_source_copy") # force rebuild after CMake run file(REMOVE "${OPENCV_DEPHELPER}/${the_module}_android_source_copy") # force rebuild after CMake run
set(depends ${the_module}_android_source_copy "${OPENCV_DEPHELPER}/${the_module}_android_source_copy") set(depends ${the_module}_android_source_copy "${OPENCV_DEPHELPER}/${the_module}_android_source_copy")

View File

@ -248,7 +248,7 @@ public abstract class CameraBridgeViewBase extends SurfaceView implements Surfac
/** /**
* This method is provided for clients, so they can disable camera connection and stop * This method is provided for clients, so they can disable camera connection and stop
* the delivery of frames even though the surface view itself is not destroyed and still stays on the scren * the delivery of frames even though the surface view itself is not destroyed and still stays on the screen
*/ */
public void disableView() { public void disableView() {
synchronized(mSyncObject) { synchronized(mSyncObject) {

View File

@ -32,4 +32,4 @@ To run performance tests, please launch a local web server in <build_dir>/bin fo
Navigate the web browser to the kernel page you want to test, like http://localhost:8080/perf/imgproc/cvtcolor.html. Navigate the web browser to the kernel page you want to test, like http://localhost:8080/perf/imgproc/cvtcolor.html.
You can input the paramater, and then click the `Run` button to run the specific case, or it will run all the cases. You can input the parameter, and then click the `Run` button to run the specific case, or it will run all the cases.

View File

@ -1683,7 +1683,7 @@ public:
/** @brief This function returns the trained parameters arranged across rows. /** @brief This function returns the trained parameters arranged across rows.
For a two class classifcation problem, it returns a row matrix. It returns learnt parameters of For a two class classification problem, it returns a row matrix. It returns learnt parameters of
the Logistic Regression as a matrix of type CV_32F. the Logistic Regression as a matrix of type CV_32F.
*/ */
CV_WRAP virtual Mat get_learnt_thetas() const = 0; CV_WRAP virtual Mat get_learnt_thetas() const = 0;

View File

@ -1,5 +1,5 @@
#!/usr/bin/env python #!/usr/bin/env python
"""Algorithm serializaion test.""" """Algorithm serialization test."""
import tempfile import tempfile
import os import os
import cv2 as cv import cv2 as cv

View File

@ -181,7 +181,7 @@ class cuda_test(NewOpenCVTests):
self.assertTrue('GpuMat' in str(type(gpu_mat)), msg=type(gpu_mat)) self.assertTrue('GpuMat' in str(type(gpu_mat)), msg=type(gpu_mat))
#TODO: print(cv.utils.dumpInputArray(gpu_mat)) # - no support for GpuMat #TODO: print(cv.utils.dumpInputArray(gpu_mat)) # - no support for GpuMat
# not checking output, therefore sepearate tests for different signatures is unecessary # not checking output, therefore sepearate tests for different signatures is unnecessary
ret, _gpu_mat2 = reader.nextFrame(gpu_mat) ret, _gpu_mat2 = reader.nextFrame(gpu_mat)
#TODO: self.assertTrue(gpu_mat == gpu_mat2) #TODO: self.assertTrue(gpu_mat == gpu_mat2)
self.assertTrue(ret) self.assertTrue(ret)

View File

@ -1,5 +1,5 @@
#!/usr/bin/env python #!/usr/bin/env python
""""Core serializaion tests.""" """"Core serialization tests."""
import tempfile import tempfile
import os import os
import cv2 as cv import cv2 as cv

View File

@ -215,14 +215,14 @@ finds two best matches for each feature and leaves the best one only if the
ratio between descriptor distances is greater than the threshold match_conf. ratio between descriptor distances is greater than the threshold match_conf.
Unlike cv::detail::BestOf2NearestMatcher this matcher uses affine Unlike cv::detail::BestOf2NearestMatcher this matcher uses affine
transformation (affine trasformation estimate will be placed in matches_info). transformation (affine transformation estimate will be placed in matches_info).
@sa cv::detail::FeaturesMatcher cv::detail::BestOf2NearestMatcher @sa cv::detail::FeaturesMatcher cv::detail::BestOf2NearestMatcher
*/ */
class CV_EXPORTS_W AffineBestOf2NearestMatcher : public BestOf2NearestMatcher class CV_EXPORTS_W AffineBestOf2NearestMatcher : public BestOf2NearestMatcher
{ {
public: public:
/** @brief Constructs a "best of 2 nearest" matcher that expects affine trasformation /** @brief Constructs a "best of 2 nearest" matcher that expects affine transformation
between images between images
@param full_affine whether to use full affine transformation with 6 degress of freedom or reduced @param full_affine whether to use full affine transformation with 6 degress of freedom or reduced

View File

@ -11367,7 +11367,7 @@ void UniversalTersePrint(const T& value, ::std::ostream* os) {
// NUL-terminated string. // NUL-terminated string.
template <typename T> template <typename T>
void UniversalPrint(const T& value, ::std::ostream* os) { void UniversalPrint(const T& value, ::std::ostream* os) {
// A workarond for the bug in VC++ 7.1 that prevents us from instantiating // A workaround for the bug in VC++ 7.1 that prevents us from instantiating
// UniversalPrinter with T directly. // UniversalPrinter with T directly.
typedef T T1; typedef T T1;
UniversalPrinter<T1>::Print(value, os); UniversalPrinter<T1>::Print(value, os);

View File

@ -94,11 +94,11 @@ class Aapt(Tool):
# get test instrumentation info # get test instrumentation info
instrumentation_tag = [t for t in tags if t.startswith("instrumentation ")] instrumentation_tag = [t for t in tags if t.startswith("instrumentation ")]
if not instrumentation_tag: if not instrumentation_tag:
raise Err("Can not find instrumentation detials in: %s", exe) raise Err("Can not find instrumentation details in: %s", exe)
res.pkg_runner = re.search(r"^[ ]+A: android:name\(0x[0-9a-f]{8}\)=\"(?P<runner>.*?)\" \(Raw: \"(?P=runner)\"\)\r?$", instrumentation_tag[0], flags=re.MULTILINE).group("runner") res.pkg_runner = re.search(r"^[ ]+A: android:name\(0x[0-9a-f]{8}\)=\"(?P<runner>.*?)\" \(Raw: \"(?P=runner)\"\)\r?$", instrumentation_tag[0], flags=re.MULTILINE).group("runner")
res.pkg_target = re.search(r"^[ ]+A: android:targetPackage\(0x[0-9a-f]{8}\)=\"(?P<pkg>.*?)\" \(Raw: \"(?P=pkg)\"\)\r?$", instrumentation_tag[0], flags=re.MULTILINE).group("pkg") res.pkg_target = re.search(r"^[ ]+A: android:targetPackage\(0x[0-9a-f]{8}\)=\"(?P<pkg>.*?)\" \(Raw: \"(?P=pkg)\"\)\r?$", instrumentation_tag[0], flags=re.MULTILINE).group("pkg")
if not res.pkg_name or not res.pkg_runner or not res.pkg_target: if not res.pkg_name or not res.pkg_runner or not res.pkg_target:
raise Err("Can not find instrumentation detials in: %s", exe) raise Err("Can not find instrumentation details in: %s", exe)
return res return res

View File

@ -452,7 +452,7 @@ int BadArgTest::run_test_case( int expected_code, const string& _descr )
{ {
thrown = true; thrown = true;
if (e.code != expected_code && if (e.code != expected_code &&
e.code != cv::Error::StsError && e.code != cv::Error::StsAssert // Exact error codes support will be dropped. Checks should provide proper text messages intead. e.code != cv::Error::StsError && e.code != cv::Error::StsAssert // Exact error codes support will be dropped. Checks should provide proper text messages instead.
) )
{ {
ts->printf(TS::LOG, "%s (test case #%d): the error code %d is different from the expected %d\n", ts->printf(TS::LOG, "%s (test case #%d): the error code %d is different from the expected %d\n",

View File

@ -110,7 +110,7 @@ public:
//set parameters //set parameters
// N - the number of samples stored in memory per model // N - the number of samples stored in memory per model
nN = defaultNsamples; nN = defaultNsamples;
//kNN - k nearest neighbour - number on NN for detcting background - default K=[0.1*nN] //kNN - k nearest neighbour - number on NN for detecting background - default K=[0.1*nN]
nkNN=MAX(1,cvRound(0.1*nN*3+0.40)); nkNN=MAX(1,cvRound(0.1*nN*3+0.40));
//Tb - Threshold Tb*kernelwidth //Tb - Threshold Tb*kernelwidth
@ -292,7 +292,7 @@ protected:
//less important parameters - things you might change but be careful //less important parameters - things you might change but be careful
//////////////////////// ////////////////////////
int nN;//totlal number of samples int nN;//totlal number of samples
int nkNN;//number on NN for detcting background - default K=[0.1*nN] int nkNN;//number on NN for detecting background - default K=[0.1*nN]
//shadow detection parameters //shadow detection parameters
bool bShadowDetection;//default 1 - do shadow detection bool bShadowDetection;//default 1 - do shadow detection

View File

@ -181,7 +181,7 @@ public:
//! computes a background image which are the mean of all background gaussians //! computes a background image which are the mean of all background gaussians
virtual void getBackgroundImage(OutputArray backgroundImage) const CV_OVERRIDE; virtual void getBackgroundImage(OutputArray backgroundImage) const CV_OVERRIDE;
//! re-initiaization method //! re-initialization method
void initialize(Size _frameSize, int _frameType) void initialize(Size _frameSize, int _frameType)
{ {
frameSize = _frameSize; frameSize = _frameSize;

View File

@ -225,8 +225,8 @@ enum
CV_CAP_PROP_XI_COOLING = 466, // Start camera cooling. CV_CAP_PROP_XI_COOLING = 466, // Start camera cooling.
CV_CAP_PROP_XI_TARGET_TEMP = 467, // Set sensor target temperature for cooling. CV_CAP_PROP_XI_TARGET_TEMP = 467, // Set sensor target temperature for cooling.
CV_CAP_PROP_XI_CHIP_TEMP = 468, // Camera sensor temperature CV_CAP_PROP_XI_CHIP_TEMP = 468, // Camera sensor temperature
CV_CAP_PROP_XI_HOUS_TEMP = 469, // Camera housing tepmerature CV_CAP_PROP_XI_HOUS_TEMP = 469, // Camera housing temperature
CV_CAP_PROP_XI_HOUS_BACK_SIDE_TEMP = 590, // Camera housing back side tepmerature CV_CAP_PROP_XI_HOUS_BACK_SIDE_TEMP = 590, // Camera housing back side temperature
CV_CAP_PROP_XI_SENSOR_BOARD_TEMP = 596, // Camera sensor board temperature CV_CAP_PROP_XI_SENSOR_BOARD_TEMP = 596, // Camera sensor board temperature
CV_CAP_PROP_XI_CMS = 470, // Mode of color management system. CV_CAP_PROP_XI_CMS = 470, // Mode of color management system.
CV_CAP_PROP_XI_APPLY_CMS = 471, // Enable applying of CMS profiles to xiGetImage (see XI_PRM_INPUT_CMS_PROFILE, XI_PRM_OUTPUT_CMS_PROFILE). CV_CAP_PROP_XI_APPLY_CMS = 471, // Enable applying of CMS profiles to xiGetImage (see XI_PRM_INPUT_CMS_PROFILE, XI_PRM_OUTPUT_CMS_PROFILE).

View File

@ -300,7 +300,7 @@ bool CvCaptureCAM_Aravis::grabFrame()
size_t buffer_size; size_t buffer_size;
framebuffer = (void*)arv_buffer_get_data (arv_buffer, &buffer_size); framebuffer = (void*)arv_buffer_get_data (arv_buffer, &buffer_size);
// retrieve image size properites // retrieve image size properties
arv_buffer_get_image_region (arv_buffer, &xoffset, &yoffset, &width, &height); arv_buffer_get_image_region (arv_buffer, &xoffset, &yoffset, &width, &height);
// retrieve image ID set by camera // retrieve image ID set by camera

View File

@ -1298,7 +1298,7 @@ bool CvVideoWriter_AVFoundation::writeFrame(const IplImage* iplimage) {
colorSpace, kCGImageAlphaLast|kCGBitmapByteOrderDefault, colorSpace, kCGImageAlphaLast|kCGBitmapByteOrderDefault,
provider, NULL, false, kCGRenderingIntentDefault); provider, NULL, false, kCGRenderingIntentDefault);
//CGImage -> CVPixelBufferRef coversion //CGImage -> CVPixelBufferRef conversion
CVPixelBufferRef pixelBuffer = NULL; CVPixelBufferRef pixelBuffer = NULL;
CFDataRef cfData = CGDataProviderCopyData(CGImageGetDataProvider(cgImage)); CFDataRef cfData = CGDataProviderCopyData(CGImageGetDataProvider(cgImage));
int status = CVPixelBufferCreateWithBytes(NULL, int status = CVPixelBufferCreateWithBytes(NULL,

View File

@ -814,7 +814,7 @@ bool CvCaptureFile::setupReadingAt(CMTime position) {
if (mMode == CV_CAP_MODE_BGR || mMode == CV_CAP_MODE_RGB) { if (mMode == CV_CAP_MODE_BGR || mMode == CV_CAP_MODE_RGB) {
// For CV_CAP_MODE_BGR, read frames as BGRA (AV Foundation's YUV->RGB conversion is slightly faster than OpenCV's CV_YUV2BGR_YV12) // For CV_CAP_MODE_BGR, read frames as BGRA (AV Foundation's YUV->RGB conversion is slightly faster than OpenCV's CV_YUV2BGR_YV12)
// kCVPixelFormatType_32ABGR is reportedly faster on OS X, but OpenCV doesn't have a CV_ABGR2BGR conversion. // kCVPixelFormatType_32ABGR is reportedly faster on OS X, but OpenCV doesn't have a CV_ABGR2BGR conversion.
// kCVPixelFormatType_24RGB is significanly slower than kCVPixelFormatType_32BGRA. // kCVPixelFormatType_24RGB is significantly slower than kCVPixelFormatType_32BGRA.
pixelFormat = kCVPixelFormatType_32BGRA; pixelFormat = kCVPixelFormatType_32BGRA;
mFormat = CV_8UC3; mFormat = CV_8UC3;
} else if (mMode == CV_CAP_MODE_GRAY) { } else if (mMode == CV_CAP_MODE_GRAY) {
@ -1332,7 +1332,7 @@ bool CvVideoWriter_AVFoundation::writeFrame(const IplImage* iplimage) {
colorSpace, kCGImageAlphaLast|kCGBitmapByteOrderDefault, colorSpace, kCGImageAlphaLast|kCGBitmapByteOrderDefault,
provider, NULL, false, kCGRenderingIntentDefault); provider, NULL, false, kCGRenderingIntentDefault);
//CGImage -> CVPixelBufferRef coversion //CGImage -> CVPixelBufferRef conversion
CVPixelBufferRef pixelBuffer = NULL; CVPixelBufferRef pixelBuffer = NULL;
CFDataRef cfData = CGDataProviderCopyData(CGImageGetDataProvider(cgImage)); CFDataRef cfData = CGDataProviderCopyData(CGImageGetDataProvider(cgImage));
int status = CVPixelBufferCreateWithBytes(NULL, int status = CVPixelBufferCreateWithBytes(NULL,

View File

@ -953,7 +953,7 @@ bool GStreamerCapture::open(const String &filename_)
* \return property value * \return property value
* *
* There are two ways the properties can be retrieved. For seek-based properties we can query the pipeline. * There are two ways the properties can be retrieved. For seek-based properties we can query the pipeline.
* For frame-based properties, we use the caps of the lasst receivef sample. This means that some properties * For frame-based properties, we use the caps of the last receivef sample. This means that some properties
* are not available until a first frame was received * are not available until a first frame was received
*/ */
double GStreamerCapture::getProperty(int propId) const double GStreamerCapture::getProperty(int propId) const

View File

@ -46,7 +46,7 @@ if (APPLE_FRAMEWORK AND BUILD_SHARED_LIBS)
set (CMAKE_INSTALL_NAME_DIR "@rpath") set (CMAKE_INSTALL_NAME_DIR "@rpath")
endif() endif()
# Hidden visibilty is required for cxx on iOS # Hidden visibility is required for cxx on iOS
set (no_warn "-Wno-unused-function -Wno-overloaded-virtual") set (no_warn "-Wno-unused-function -Wno-overloaded-virtual")
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${no_warn}") set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${no_warn}")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -fvisibility=hidden -fvisibility-inlines-hidden ${no_warn}") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -fvisibility=hidden -fvisibility-inlines-hidden ${no_warn}")

View File

@ -4,7 +4,7 @@
# Toolchains with 'img' in the name are for MIPS R6 instruction sets. # Toolchains with 'img' in the name are for MIPS R6 instruction sets.
# It is recommended to use cmake-gui application for build scripts configuration and generation: # It is recommended to use cmake-gui application for build scripts configuration and generation:
# 1. Run cmake-gui # 1. Run cmake-gui
# 2. Specifiy toolchain file for cross-compiling, mips32r5el-gnu.toolchian.cmake or mips64r6el-gnu.toolchain.cmake # 2. Specify toolchain file for cross-compiling, mips32r5el-gnu.toolchian.cmake or mips64r6el-gnu.toolchain.cmake
# can be selected. # can be selected.
# 3. Configure and Generate makefiles. # 3. Configure and Generate makefiles.
# 4. make -j4 & make install # 4. make -j4 & make install

View File

@ -4,7 +4,7 @@
# Toolchains with 'img' in the name are for MIPS R6 instruction sets. # Toolchains with 'img' in the name are for MIPS R6 instruction sets.
# It is recommended to use cmake-gui for build scripts configuration and generation: # It is recommended to use cmake-gui for build scripts configuration and generation:
# 1. Run cmake-gui # 1. Run cmake-gui
# 2. Specifiy toolchain file mips32r5el-gnu.toolchian.cmake for cross-compiling. # 2. Specify toolchain file mips32r5el-gnu.toolchian.cmake for cross-compiling.
# 3. Configure and Generate makefiles. # 3. Configure and Generate makefiles.
# 4. make -j4 & make install # 4. make -j4 & make install
# ---------------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------------

Some files were not shown because too many files have changed in this diff Show More