int imgToDenoiseIndex, int temporalWindowSize,
int templateWindowSize, int searchWindowSize)
{
- int src_imgs_size = srcImgs.size();
+ int src_imgs_size = (int)srcImgs.size();
if (src_imgs_size == 0) {
CV_Error(CV_StsBadArg, "Input images vector should not be empty!");
}
temporalWindowSize, templateWindowSize, searchWindowSize
);
- int src_imgs_size = srcImgs.size();
+ int src_imgs_size = (int)srcImgs.size();
if (srcImgs[0].type() != CV_8UC3) {
CV_Error(CV_StsBadArg, "Type of input images should be CV_8UC3!");
void operator() (const BlockedRange& range) const;
+ void operator= (const FastNlMeansDenoisingInvoker& invoker) {
+ CV_Error(CV_StsNotImplemented, "Assigment operator is not implemented");
+ }
+
private:
const Mat& src_;
Mat& dst_;
int row_from = range.begin();
int row_to = range.end() - 1;
- int dist_sums_array[search_window_size_ * search_window_size_];
- Array2d<int> dist_sums(dist_sums_array, search_window_size_, search_window_size_);
+ Array2d<int> dist_sums(search_window_size_, search_window_size_);
// for lazy calc optimization
- int col_dist_sums_array[template_window_size_ * search_window_size_ * search_window_size_];
- Array3d<int> col_dist_sums(&col_dist_sums_array[0],
- template_window_size_, search_window_size_, search_window_size_);
+ Array3d<int> col_dist_sums(template_window_size_, search_window_size_, search_window_size_);
int first_col_num = -1;
-
Array3d<int> up_col_dist_sums(src_.cols, search_window_size_, search_window_size_);
for (int i = row_from; i <= row_to; i++) {
// calc weights
int weights_sum = 0;
- int estimation[src_.channels()];
+ int estimation[3];
for (int channel_num = 0; channel_num < src_.channels(); channel_num++) {
estimation[channel_num] = 0;
}
void operator() (const BlockedRange& range) const;
+ void operator= (const FastNlMeansMultiDenoisingInvoker& invoker) {
+ CV_Error(CV_StsNotImplemented, "Assigment operator is not implemented");
+ }
+
private:
int rows_;
int cols_;
int row_from = range.begin();
int row_to = range.end() - 1;
- int dist_sums_array[temporal_window_size_ * search_window_size_ * search_window_size_];
- Array3d<int> dist_sums(dist_sums_array,
- temporal_window_size_, search_window_size_, search_window_size_);
+ Array3d<int> dist_sums(temporal_window_size_, search_window_size_, search_window_size_);
// for lazy calc optimization
- int col_dist_sums_array[
- template_window_size_ * temporal_window_size_ * search_window_size_ * search_window_size_];
-
- Array4d<int> col_dist_sums(col_dist_sums_array,
- template_window_size_, temporal_window_size_, search_window_size_, search_window_size_);
+ Array4d<int> col_dist_sums(
+ template_window_size_, temporal_window_size_, search_window_size_, search_window_size_);
int first_col_num = -1;
// calc weights
int weights_sum = 0;
- int estimation[channels_count_];
+ int estimation[3];
for (int channel_num = 0; channel_num < channels_count_; channel_num++) {
estimation[channel_num] = 0;
}