Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv_contrib
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv_contrib
Commits
ec6ab8cd
Commit
ec6ab8cd
authored
Aug 10, 2017
by
Vladislav Sovrasov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bioinspired: remove register specifier to prevent possible warnings from cxx11 compilers
parent
54d65f9d
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
88 additions
and
88 deletions
+88
-88
basicretinafilter.cpp
modules/bioinspired/src/basicretinafilter.cpp
+0
-0
basicretinafilter.hpp
modules/bioinspired/src/basicretinafilter.hpp
+16
-16
imagelogpolprojection.cpp
modules/bioinspired/src/imagelogpolprojection.cpp
+2
-2
magnoretinafilter.cpp
modules/bioinspired/src/magnoretinafilter.cpp
+10
-10
magnoretinafilter.hpp
modules/bioinspired/src/magnoretinafilter.hpp
+6
-6
parvoretinafilter.cpp
modules/bioinspired/src/parvoretinafilter.cpp
+5
-5
retinacolor.cpp
modules/bioinspired/src/retinacolor.cpp
+18
-18
retinacolor.hpp
modules/bioinspired/src/retinacolor.hpp
+7
-7
retinafilter.cpp
modules/bioinspired/src/retinafilter.cpp
+10
-10
templatebuffer.hpp
modules/bioinspired/src/templatebuffer.hpp
+13
-13
transientareassegmentationmodule.cpp
modules/bioinspired/src/transientareassegmentationmodule.cpp
+1
-1
No files found.
modules/bioinspired/src/basicretinafilter.cpp
View file @
ec6ab8cd
This diff is collapsed.
Click to expand it.
modules/bioinspired/src/basicretinafilter.hpp
View file @
ec6ab8cd
...
...
@@ -498,8 +498,8 @@ namespace bioinspired
#endif
for
(
int
IDrow
=
r
.
start
;
IDrow
!=
r
.
end
;
++
IDrow
)
{
register
float
*
outputPTR
=
outputFrame
+
(
IDrowEnd
-
IDrow
)
*
(
nbColumns
)
-
1
;
register
float
result
=
0
;
float
*
outputPTR
=
outputFrame
+
(
IDrowEnd
-
IDrow
)
*
(
nbColumns
)
-
1
;
float
result
=
0
;
for
(
unsigned
int
index
=
0
;
index
<
nbColumns
;
++
index
)
{
result
=
*
(
outputPTR
)
+
filterParam_a
*
result
;
...
...
@@ -523,9 +523,9 @@ namespace bioinspired
virtual
void
operator
()(
const
Range
&
r
)
const
{
for
(
int
IDrow
=
r
.
start
;
IDrow
!=
r
.
end
;
++
IDrow
)
{
register
float
*
outputPTR
=
outputFrame
+
(
IDrowStart
+
IDrow
)
*
nbColumns
;
register
const
float
*
inputPTR
=
inputFrame
+
(
IDrowStart
+
IDrow
)
*
nbColumns
;
register
float
result
=
0
;
float
*
outputPTR
=
outputFrame
+
(
IDrowStart
+
IDrow
)
*
nbColumns
;
const
float
*
inputPTR
=
inputFrame
+
(
IDrowStart
+
IDrow
)
*
nbColumns
;
float
result
=
0
;
for
(
unsigned
int
index
=
0
;
index
<
nbColumns
;
++
index
)
{
result
=
*
(
inputPTR
++
)
+
filterParam_tau
**
(
outputPTR
)
+
filterParam_a
*
result
;
...
...
@@ -548,8 +548,8 @@ namespace bioinspired
virtual
void
operator
()(
const
Range
&
r
)
const
{
for
(
int
IDcolumn
=
r
.
start
;
IDcolumn
!=
r
.
end
;
++
IDcolumn
)
{
register
float
result
=
0
;
register
float
*
outputPTR
=
outputFrame
+
IDcolumn
;
float
result
=
0
;
float
*
outputPTR
=
outputFrame
+
IDcolumn
;
for
(
unsigned
int
index
=
0
;
index
<
nbRows
;
++
index
)
{
...
...
@@ -576,8 +576,8 @@ namespace bioinspired
float
*
offset
=
outputFrame
+
nbColumns
*
nbRows
-
nbColumns
;
for
(
int
IDcolumn
=
r
.
start
;
IDcolumn
!=
r
.
end
;
++
IDcolumn
)
{
register
float
result
=
0
;
register
float
*
outputPTR
=
offset
+
IDcolumn
;
float
result
=
0
;
float
*
outputPTR
=
offset
+
IDcolumn
;
for
(
unsigned
int
index
=
0
;
index
<
nbRows
;
++
index
)
{
...
...
@@ -604,7 +604,7 @@ namespace bioinspired
const
float
*
localLuminancePTR
=
localLuminance
+
r
.
start
;
const
float
*
inputFramePTR
=
inputFrame
+
r
.
start
;
float
*
outputFramePTR
=
outputFrame
+
r
.
start
;
for
(
register
int
IDpixel
=
r
.
start
;
IDpixel
!=
r
.
end
;
++
IDpixel
,
++
inputFramePTR
,
++
outputFramePTR
)
for
(
int
IDpixel
=
r
.
start
;
IDpixel
!=
r
.
end
;
++
IDpixel
,
++
inputFramePTR
,
++
outputFramePTR
)
{
float
X0
=*
(
localLuminancePTR
++
)
*
localLuminanceFactor
+
localLuminanceAddon
;
// TODO : the following line can lead to a divide by zero ! A small offset is added, take care if the offset is too large in case of High Dynamic Range images which can use very small values...
...
...
@@ -630,9 +630,9 @@ namespace bioinspired
for
(
int
IDrow
=
r
.
start
;
IDrow
!=
r
.
end
;
++
IDrow
)
{
register
float
*
outputPTR
=
outputFrame
+
(
IDrowEnd
-
IDrow
)
*
(
nbColumns
)
-
1
;
register
const
float
*
spatialConstantPTR
=
spatialConstantBuffer
+
(
IDrowEnd
-
IDrow
)
*
(
nbColumns
)
-
1
;
register
float
result
=
0
;
float
*
outputPTR
=
outputFrame
+
(
IDrowEnd
-
IDrow
)
*
(
nbColumns
)
-
1
;
const
float
*
spatialConstantPTR
=
spatialConstantBuffer
+
(
IDrowEnd
-
IDrow
)
*
(
nbColumns
)
-
1
;
float
result
=
0
;
for
(
unsigned
int
index
=
0
;
index
<
nbColumns
;
++
index
)
{
result
=
*
(
outputPTR
)
+
*
(
spatialConstantPTR
--
)
*
result
;
...
...
@@ -655,9 +655,9 @@ namespace bioinspired
virtual
void
operator
()(
const
Range
&
r
)
const
{
for
(
int
IDcolumn
=
r
.
start
;
IDcolumn
!=
r
.
end
;
++
IDcolumn
)
{
register
float
result
=
0
;
register
float
*
outputPTR
=
outputFrame
+
IDcolumn
;
register
const
float
*
spatialConstantPTR
=
spatialConstantBuffer
+
IDcolumn
;
float
result
=
0
;
float
*
outputPTR
=
outputFrame
+
IDcolumn
;
const
float
*
spatialConstantPTR
=
spatialConstantBuffer
+
IDcolumn
;
for
(
unsigned
int
index
=
0
;
index
<
nbRows
;
++
index
)
{
result
=
*
(
outputPTR
)
+
*
(
spatialConstantPTR
)
*
result
;
...
...
modules/bioinspired/src/imagelogpolprojection.cpp
View file @
ec6ab8cd
...
...
@@ -410,7 +410,7 @@ std::valarray<float> &ImageLogPolProjection::runProjection(const std::valarray<f
_spatiotemporalLPfilter_Irregular
(
&
_irregularLPfilteredFrame
[
0
],
&
_tempBuffer
[
0
]
+
_filterOutput
.
getNBpixels
()
*
2
);
// applying image projection/resampling
register
unsigned
int
*
transformTablePTR
=&
_transformTable
[
0
];
unsigned
int
*
transformTablePTR
=&
_transformTable
[
0
];
for
(
unsigned
int
i
=
0
;
i
<
_usefullpixelIndex
;
i
+=
2
,
transformTablePTR
+=
2
)
{
#ifdef IMAGELOGPOLPROJECTION_DEBUG
...
...
@@ -430,7 +430,7 @@ std::valarray<float> &ImageLogPolProjection::runProjection(const std::valarray<f
_spatiotemporalLPfilter_Irregular
(
get_data
(
inputFrame
),
&
_irregularLPfilteredFrame
[
0
]);
_spatiotemporalLPfilter_Irregular
(
&
_irregularLPfilteredFrame
[
0
],
&
_irregularLPfilteredFrame
[
0
]);
// applying image projection/resampling
register
unsigned
int
*
transformTablePTR
=&
_transformTable
[
0
];
unsigned
int
*
transformTablePTR
=&
_transformTable
[
0
];
for
(
unsigned
int
i
=
0
;
i
<
_usefullpixelIndex
;
i
+=
2
,
transformTablePTR
+=
2
)
{
#ifdef IMAGELOGPOLPROJECTION_DEBUG
...
...
modules/bioinspired/src/magnoretinafilter.cpp
View file @
ec6ab8cd
...
...
@@ -158,12 +158,12 @@ void MagnoRetinaFilter::_amacrineCellsComputing(const float *OPL_ON, const float
#ifdef MAKE_PARALLEL
cv
::
parallel_for_
(
cv
::
Range
(
0
,
_filterOutput
.
getNBpixels
()),
Parallel_amacrineCellsComputing
(
OPL_ON
,
OPL_OFF
,
&
_previousInput_ON
[
0
],
&
_previousInput_OFF
[
0
],
&
_amacrinCellsTempOutput_ON
[
0
],
&
_amacrinCellsTempOutput_OFF
[
0
],
_temporalCoefficient
));
#else
register
const
float
*
OPL_ON_PTR
=
OPL_ON
;
register
const
float
*
OPL_OFF_PTR
=
OPL_OFF
;
register
float
*
previousInput_ON_PTR
=
&
_previousInput_ON
[
0
];
register
float
*
previousInput_OFF_PTR
=
&
_previousInput_OFF
[
0
];
register
float
*
amacrinCellsTempOutput_ON_PTR
=
&
_amacrinCellsTempOutput_ON
[
0
];
register
float
*
amacrinCellsTempOutput_OFF_PTR
=
&
_amacrinCellsTempOutput_OFF
[
0
];
const
float
*
OPL_ON_PTR
=
OPL_ON
;
const
float
*
OPL_OFF_PTR
=
OPL_OFF
;
float
*
previousInput_ON_PTR
=
&
_previousInput_ON
[
0
];
float
*
previousInput_OFF_PTR
=
&
_previousInput_OFF
[
0
];
float
*
amacrinCellsTempOutput_ON_PTR
=
&
_amacrinCellsTempOutput_ON
[
0
];
float
*
amacrinCellsTempOutput_OFF_PTR
=
&
_amacrinCellsTempOutput_OFF
[
0
];
for
(
unsigned
int
IDpixel
=
0
;
IDpixel
<
this
->
getNBpixels
();
++
IDpixel
)
{
...
...
@@ -200,10 +200,10 @@ const std::valarray<float> &MagnoRetinaFilter::runFilter(const std::valarray<flo
_localLuminanceAdaptation
(
&
_magnoXOutputOFF
[
0
],
&
_localProcessBufferOFF
[
0
]);
/* Compute MagnoY */
register
float
*
magnoYOutput
=
&
(
*
_magnoYOutput
)[
0
];
register
float
*
magnoXOutputON_PTR
=
&
_magnoXOutputON
[
0
];
register
float
*
magnoXOutputOFF_PTR
=
&
_magnoXOutputOFF
[
0
];
for
(
register
unsigned
int
IDpixel
=
0
;
IDpixel
<
_filterOutput
.
getNBpixels
()
;
++
IDpixel
)
float
*
magnoYOutput
=
&
(
*
_magnoYOutput
)[
0
];
float
*
magnoXOutputON_PTR
=
&
_magnoXOutputON
[
0
];
float
*
magnoXOutputOFF_PTR
=
&
_magnoXOutputOFF
[
0
];
for
(
unsigned
int
IDpixel
=
0
;
IDpixel
<
_filterOutput
.
getNBpixels
()
;
++
IDpixel
)
*
(
magnoYOutput
++
)
=*
(
magnoXOutputON_PTR
++
)
+*
(
magnoXOutputOFF_PTR
++
);
return
(
*
_magnoYOutput
);
...
...
modules/bioinspired/src/magnoretinafilter.hpp
View file @
ec6ab8cd
...
...
@@ -212,12 +212,12 @@ namespace bioinspired
:
OPL_ON
(
OPL_ON_PTR
),
OPL_OFF
(
OPL_OFF_PTR
),
previousInput_ON
(
previousInput_ON_PTR
),
previousInput_OFF
(
previousInput_OFF_PTR
),
amacrinCellsTempOutput_ON
(
amacrinCellsTempOutput_ON_PTR
),
amacrinCellsTempOutput_OFF
(
amacrinCellsTempOutput_OFF_PTR
),
temporalCoefficient
(
temporalCoefficientVal
)
{}
virtual
void
operator
()(
const
Range
&
r
)
const
{
register
const
float
*
OPL_ON_PTR
=
OPL_ON
+
r
.
start
;
register
const
float
*
OPL_OFF_PTR
=
OPL_OFF
+
r
.
start
;
register
float
*
previousInput_ON_PTR
=
previousInput_ON
+
r
.
start
;
register
float
*
previousInput_OFF_PTR
=
previousInput_OFF
+
r
.
start
;
register
float
*
amacrinCellsTempOutput_ON_PTR
=
amacrinCellsTempOutput_ON
+
r
.
start
;
register
float
*
amacrinCellsTempOutput_OFF_PTR
=
amacrinCellsTempOutput_OFF
+
r
.
start
;
const
float
*
OPL_ON_PTR
=
OPL_ON
+
r
.
start
;
const
float
*
OPL_OFF_PTR
=
OPL_OFF
+
r
.
start
;
float
*
previousInput_ON_PTR
=
previousInput_ON
+
r
.
start
;
float
*
previousInput_OFF_PTR
=
previousInput_OFF
+
r
.
start
;
float
*
amacrinCellsTempOutput_ON_PTR
=
amacrinCellsTempOutput_ON
+
r
.
start
;
float
*
amacrinCellsTempOutput_OFF_PTR
=
amacrinCellsTempOutput_OFF
+
r
.
start
;
for
(
int
IDpixel
=
r
.
start
;
IDpixel
!=
r
.
end
;
++
IDpixel
)
{
...
...
modules/bioinspired/src/parvoretinafilter.cpp
View file @
ec6ab8cd
...
...
@@ -191,11 +191,11 @@ const std::valarray<float> &ParvoRetinaFilter::runFilter(const std::valarray<flo
//
//// loop that makes the difference between photoreceptor cells output and horizontal cells
//// positive part goes on the ON way, negative pat goes on the OFF way
register
float
*
parvocellularOutputONminusOFF_PTR
=&
(
*
_parvocellularOutputONminusOFF
)[
0
];
register
float
*
parvocellularOutputON_PTR
=&
_parvocellularOutputON
[
0
];
register
float
*
parvocellularOutputOFF_PTR
=&
_parvocellularOutputOFF
[
0
];
float
*
parvocellularOutputONminusOFF_PTR
=&
(
*
_parvocellularOutputONminusOFF
)[
0
];
float
*
parvocellularOutputON_PTR
=&
_parvocellularOutputON
[
0
];
float
*
parvocellularOutputOFF_PTR
=&
_parvocellularOutputOFF
[
0
];
for
(
register
unsigned
int
IDpixel
=
0
;
IDpixel
<
_filterOutput
.
getNBpixels
()
;
++
IDpixel
)
for
(
unsigned
int
IDpixel
=
0
;
IDpixel
<
_filterOutput
.
getNBpixels
()
;
++
IDpixel
)
*
(
parvocellularOutputONminusOFF_PTR
++
)
=
(
*
(
parvocellularOutputON_PTR
++
)
-*
(
parvocellularOutputOFF_PTR
++
));
}
return
(
*
_parvocellularOutputONminusOFF
);
...
...
@@ -217,7 +217,7 @@ void ParvoRetinaFilter::_OPL_OnOffWaysComputing() // WARNING : this method requi
float
*
parvocellularOutputOFF_PTR
=
&
_parvocellularOutputOFF
[
0
];
// compute bipolar cells response equal to photoreceptors minus horizontal cells response
// and copy the result on parvo cellular outputs... keeping time before their local contrast adaptation for final result
for
(
register
unsigned
int
IDpixel
=
0
;
IDpixel
<
_filterOutput
.
getNBpixels
()
;
++
IDpixel
)
for
(
unsigned
int
IDpixel
=
0
;
IDpixel
<
_filterOutput
.
getNBpixels
()
;
++
IDpixel
)
{
float
pixelDifference
=
*
(
photoreceptorsOutput_PTR
++
)
-*
(
horizontalCellsOutput_PTR
++
);
// test condition to allow write pixelDifference in ON or OFF buffer and 0 in the over
...
...
modules/bioinspired/src/retinacolor.cpp
View file @
ec6ab8cd
...
...
@@ -239,7 +239,7 @@ void RetinaColor::_initColorSampling()
_spatiotemporalLPfilter
(
&
_RGBmosaic
[
0
]
+
_filterOutput
.
getNBpixels
(),
&
_colorLocalDensity
[
0
]
+
_filterOutput
.
getNBpixels
());
_spatiotemporalLPfilter
(
&
_RGBmosaic
[
0
]
+
_filterOutput
.
getDoubleNBpixels
(),
&
_colorLocalDensity
[
0
]
+
_filterOutput
.
getDoubleNBpixels
());
unsigned
int
maxNBpixels
=
3
*
_filterOutput
.
getNBpixels
();
register
float
*
colorLocalDensityPTR
=&
_colorLocalDensity
[
0
];
float
*
colorLocalDensityPTR
=&
_colorLocalDensity
[
0
];
for
(
unsigned
int
i
=
0
;
i
<
maxNBpixels
;
++
i
,
++
colorLocalDensityPTR
)
*
colorLocalDensityPTR
=
1.
f
/
*
colorLocalDensityPTR
;
...
...
@@ -258,8 +258,8 @@ void RetinaColor::runColorDemultiplexing(const std::valarray<float> &multiplexed
// -> first set demultiplexed frame to 0
_demultiplexedTempBuffer
=
0
;
// -> demultiplex process
register
unsigned
int
*
colorSamplingPRT
=&
_colorSampling
[
0
];
register
const
float
*
multiplexedColorFramePtr
=
get_data
(
multiplexedColorFrame
);
unsigned
int
*
colorSamplingPRT
=&
_colorSampling
[
0
];
const
float
*
multiplexedColorFramePtr
=
get_data
(
multiplexedColorFrame
);
for
(
unsigned
int
indexa
=
0
;
indexa
<
_filterOutput
.
getNBpixels
()
;
++
indexa
)
_demultiplexedTempBuffer
[
*
(
colorSamplingPRT
++
)]
=*
(
multiplexedColorFramePtr
++
);
...
...
@@ -280,9 +280,9 @@ void RetinaColor::runColorDemultiplexing(const std::valarray<float> &multiplexed
}*/
// normalize by the photoreceptors local density and retrieve the local luminance
register
float
*
chrominancePTR
=
&
_chrominance
[
0
];
register
float
*
colorLocalDensityPTR
=
&
_colorLocalDensity
[
0
];
register
float
*
luminance
=
&
(
*
_luminance
)[
0
];
float
*
chrominancePTR
=
&
_chrominance
[
0
];
float
*
colorLocalDensityPTR
=
&
_colorLocalDensity
[
0
];
float
*
luminance
=
&
(
*
_luminance
)[
0
];
if
(
!
adaptiveFiltering
)
// compute the gradient on the luminance
{
if
(
_samplingMethod
==
RETINA_COLOR_RANDOM
)
...
...
@@ -326,7 +326,7 @@ void RetinaColor::runColorDemultiplexing(const std::valarray<float> &multiplexed
}
else
{
register
const
float
*
multiplexedColorFramePTR
=
get_data
(
multiplexedColorFrame
);
const
float
*
multiplexedColorFramePTR
=
get_data
(
multiplexedColorFrame
);
for
(
unsigned
int
indexc
=
0
;
indexc
<
_filterOutput
.
getNBpixels
()
;
++
indexc
,
++
chrominancePTR
,
++
colorLocalDensityPTR
,
++
luminance
,
++
multiplexedColorFramePTR
)
{
// normalize by photoreceptors density
...
...
@@ -412,8 +412,8 @@ void RetinaColor::runColorDemultiplexing(const std::valarray<float> &multiplexed
void
RetinaColor
::
runColorMultiplexing
(
const
std
::
valarray
<
float
>
&
demultiplexedInputFrame
,
std
::
valarray
<
float
>
&
multiplexedFrame
)
{
// multiply each color layer by its bayer mask
register
unsigned
int
*
colorSamplingPTR
=
&
_colorSampling
[
0
];
register
float
*
multiplexedFramePTR
=
&
multiplexedFrame
[
0
];
unsigned
int
*
colorSamplingPTR
=
&
_colorSampling
[
0
];
float
*
multiplexedFramePTR
=
&
multiplexedFrame
[
0
];
for
(
unsigned
int
indexp
=
0
;
indexp
<
_filterOutput
.
getNBpixels
();
++
indexp
)
*
(
multiplexedFramePTR
++
)
=
demultiplexedInputFrame
[
*
(
colorSamplingPTR
++
)];
}
...
...
@@ -440,8 +440,8 @@ void RetinaColor::clipRGBOutput_0_maxInputValue(float *inputOutputBuffer, const
#ifdef MAKE_PARALLEL // call the TemplateBuffer TBB clipping method
cv
::
parallel_for_
(
cv
::
Range
(
0
,
_filterOutput
.
getNBpixels
()
*
3
),
Parallel_clipBufferValues
<
float
>
(
inputOutputBuffer
,
0
,
maxInputValue
));
#else
register
float
*
inputOutputBufferPTR
=
inputOutputBuffer
;
for
(
register
unsigned
int
jf
=
0
;
jf
<
_filterOutput
.
getNBpixels
()
*
3
;
++
jf
,
++
inputOutputBufferPTR
)
float
*
inputOutputBufferPTR
=
inputOutputBuffer
;
for
(
unsigned
int
jf
=
0
;
jf
<
_filterOutput
.
getNBpixels
()
*
3
;
++
jf
,
++
inputOutputBufferPTR
)
{
if
(
*
inputOutputBufferPTR
>
maxInputValue
)
*
inputOutputBufferPTR
=
maxInputValue
;
...
...
@@ -587,12 +587,12 @@ void RetinaColor::_adaptiveHorizontalCausalFilter_addInput(const float *inputFra
#ifdef MAKE_PARALLEL
cv
::
parallel_for_
(
cv
::
Range
(
IDrowStart
,
IDrowEnd
),
Parallel_adaptiveHorizontalCausalFilter_addInput
(
inputFrame
,
outputFrame
,
&
_imageGradient
[
0
],
_filterOutput
.
getNBcolumns
()));
#else
register
float
*
outputPTR
=
outputFrame
+
IDrowStart
*
_filterOutput
.
getNBcolumns
();
register
const
float
*
inputPTR
=
inputFrame
+
IDrowStart
*
_filterOutput
.
getNBcolumns
();
register
const
float
*
imageGradientPTR
=
&
_imageGradient
[
0
]
+
IDrowStart
*
_filterOutput
.
getNBcolumns
();
float
*
outputPTR
=
outputFrame
+
IDrowStart
*
_filterOutput
.
getNBcolumns
();
const
float
*
inputPTR
=
inputFrame
+
IDrowStart
*
_filterOutput
.
getNBcolumns
();
const
float
*
imageGradientPTR
=
&
_imageGradient
[
0
]
+
IDrowStart
*
_filterOutput
.
getNBcolumns
();
for
(
unsigned
int
IDrow
=
IDrowStart
;
IDrow
<
IDrowEnd
;
++
IDrow
)
{
register
float
result
=
0
;
float
result
=
0
;
for
(
unsigned
int
index
=
0
;
index
<
_filterOutput
.
getNBcolumns
();
++
index
)
{
//std::cout<<(*imageGradientPTR)<<" ";
...
...
@@ -616,9 +616,9 @@ void RetinaColor::_adaptiveVerticalAnticausalFilter_multGain(float *outputFrame,
for
(
unsigned
int
IDcolumn
=
IDcolumnStart
;
IDcolumn
<
IDcolumnEnd
;
++
IDcolumn
)
{
register
float
result
=
0
;
register
float
*
outputPTR
=
outputOffset
+
IDcolumn
;
register
float
*
imageGradientPTR
=
gradOffset
+
IDcolumn
;
float
result
=
0
;
float
*
outputPTR
=
outputOffset
+
IDcolumn
;
float
*
imageGradientPTR
=
gradOffset
+
IDcolumn
;
for
(
unsigned
int
index
=
0
;
index
<
_filterOutput
.
getNBrows
();
++
index
)
{
result
=
*
(
outputPTR
)
+
(
*
(
imageGradientPTR
))
*
result
;
...
...
modules/bioinspired/src/retinacolor.hpp
View file @
ec6ab8cd
...
...
@@ -291,12 +291,12 @@ namespace bioinspired
virtual
void
operator
()(
const
Range
&
r
)
const
{
register
float
*
outputPTR
=
outputFrame
+
r
.
start
*
nbColumns
;
register
const
float
*
inputPTR
=
inputFrame
+
r
.
start
*
nbColumns
;
register
const
float
*
imageGradientPTR
=
imageGradient
+
r
.
start
*
nbColumns
;
float
*
outputPTR
=
outputFrame
+
r
.
start
*
nbColumns
;
const
float
*
inputPTR
=
inputFrame
+
r
.
start
*
nbColumns
;
const
float
*
imageGradientPTR
=
imageGradient
+
r
.
start
*
nbColumns
;
for
(
int
IDrow
=
r
.
start
;
IDrow
!=
r
.
end
;
++
IDrow
)
{
register
float
result
=
0
;
float
result
=
0
;
for
(
unsigned
int
index
=
0
;
index
<
nbColumns
;
++
index
)
{
result
=
*
(
inputPTR
++
)
+
(
*
imageGradientPTR
++
)
*
result
;
...
...
@@ -322,9 +322,9 @@ namespace bioinspired
const
float
*
gradOffset
=
imageGradient
+
nbColumns
*
nbRows
-
nbColumns
;
for
(
int
IDcolumn
=
r
.
start
;
IDcolumn
!=
r
.
end
;
++
IDcolumn
)
{
register
float
result
=
0
;
register
float
*
outputPTR
=
offset
+
IDcolumn
;
register
const
float
*
imageGradientPTR
=
gradOffset
+
IDcolumn
;
float
result
=
0
;
float
*
outputPTR
=
offset
+
IDcolumn
;
const
float
*
imageGradientPTR
=
gradOffset
+
IDcolumn
;
for
(
unsigned
int
index
=
0
;
index
<
nbRows
;
++
index
)
{
result
=
*
(
outputPTR
)
+
*
(
imageGradientPTR
)
*
result
;
...
...
modules/bioinspired/src/retinafilter.cpp
View file @
ec6ab8cd
...
...
@@ -469,10 +469,10 @@ namespace bioinspired
// return image with center Parvo and peripheral Magno channels
void
RetinaFilter
::
_processRetinaParvoMagnoMapping
()
{
register
float
*
hybridParvoMagnoPTR
=
&
_retinaParvoMagnoMappedFrame
[
0
];
register
const
float
*
parvoOutputPTR
=
get_data
(
_ParvoRetinaFilter
.
getOutput
());
register
const
float
*
magnoXOutputPTR
=
get_data
(
_MagnoRetinaFilter
.
getOutput
());
register
float
*
hybridParvoMagnoCoefTablePTR
=
&
_retinaParvoMagnoMapCoefTable
[
0
];
float
*
hybridParvoMagnoPTR
=
&
_retinaParvoMagnoMappedFrame
[
0
];
const
float
*
parvoOutputPTR
=
get_data
(
_ParvoRetinaFilter
.
getOutput
());
const
float
*
magnoXOutputPTR
=
get_data
(
_MagnoRetinaFilter
.
getOutput
());
float
*
hybridParvoMagnoCoefTablePTR
=
&
_retinaParvoMagnoMapCoefTable
[
0
];
for
(
unsigned
int
i
=
0
;
i
<
_photoreceptorsPrefilter
.
getNBpixels
()
;
++
i
,
hybridParvoMagnoCoefTablePTR
+=
2
)
{
...
...
@@ -491,9 +491,9 @@ namespace bioinspired
if
(
parvoFovealResponse
.
size
()
!=
_ParvoRetinaFilter
.
getNBpixels
())
return
false
;
register
const
float
*
parvoOutputPTR
=
get_data
(
_ParvoRetinaFilter
.
getOutput
());
register
float
*
fovealParvoResponsePTR
=
&
parvoFovealResponse
[
0
];
register
float
*
hybridParvoMagnoCoefTablePTR
=
&
_retinaParvoMagnoMapCoefTable
[
0
];
const
float
*
parvoOutputPTR
=
get_data
(
_ParvoRetinaFilter
.
getOutput
());
float
*
fovealParvoResponsePTR
=
&
parvoFovealResponse
[
0
];
float
*
hybridParvoMagnoCoefTablePTR
=
&
_retinaParvoMagnoMapCoefTable
[
0
];
for
(
unsigned
int
i
=
0
;
i
<
_photoreceptorsPrefilter
.
getNBpixels
()
;
++
i
,
hybridParvoMagnoCoefTablePTR
+=
2
)
{
...
...
@@ -511,9 +511,9 @@ namespace bioinspired
if
(
magnoParafovealResponse
.
size
()
!=
_MagnoRetinaFilter
.
getNBpixels
())
return
false
;
register
const
float
*
magnoXOutputPTR
=
get_data
(
_MagnoRetinaFilter
.
getOutput
());
register
float
*
parafovealMagnoResponsePTR
=&
magnoParafovealResponse
[
0
];
register
float
*
hybridParvoMagnoCoefTablePTR
=&
_retinaParvoMagnoMapCoefTable
[
0
]
+
1
;
const
float
*
magnoXOutputPTR
=
get_data
(
_MagnoRetinaFilter
.
getOutput
());
float
*
parafovealMagnoResponsePTR
=&
magnoParafovealResponse
[
0
];
float
*
hybridParvoMagnoCoefTablePTR
=&
_retinaParvoMagnoMapCoefTable
[
0
]
+
1
;
for
(
unsigned
int
i
=
0
;
i
<
_photoreceptorsPrefilter
.
getNBpixels
()
;
++
i
,
hybridParvoMagnoCoefTablePTR
+=
2
)
{
...
...
modules/bioinspired/src/templatebuffer.hpp
View file @
ec6ab8cd
...
...
@@ -95,8 +95,8 @@ public:
:
bufferToClip
(
bufferToProcess
),
minValue
(
min
),
maxValue
(
max
)
{
}
virtual
void
operator
()(
const
cv
::
Range
&
r
)
const
{
register
type
*
inputOutputBufferPTR
=
bufferToClip
+
r
.
start
;
for
(
register
int
jf
=
r
.
start
;
jf
!=
r
.
end
;
++
jf
,
++
inputOutputBufferPTR
)
type
*
inputOutputBufferPTR
=
bufferToClip
+
r
.
start
;
for
(
int
jf
=
r
.
start
;
jf
!=
r
.
end
;
++
jf
,
++
inputOutputBufferPTR
)
{
if
(
*
inputOutputBufferPTR
>
maxValue
)
*
inputOutputBufferPTR
=
maxValue
;
...
...
@@ -430,8 +430,8 @@ public:
type
maxValue
=
inputOutputBuffer
[
0
],
minValue
=
inputOutputBuffer
[
0
];
// get the min and max value
register
type
*
inputOutputBufferPTR
=
inputOutputBuffer
;
for
(
register
size_t
j
=
0
;
j
<
processedPixels
;
++
j
)
type
*
inputOutputBufferPTR
=
inputOutputBuffer
;
for
(
size_t
j
=
0
;
j
<
processedPixels
;
++
j
)
{
type
pixValue
=
*
(
inputOutputBufferPTR
++
);
if
(
maxValue
<
pixValue
)
...
...
@@ -445,7 +445,7 @@ public:
type
offset
=
(
type
)(
-
minValue
*
factor
);
inputOutputBufferPTR
=
inputOutputBuffer
;
for
(
register
size_t
j
=
0
;
j
<
processedPixels
;
++
j
,
++
inputOutputBufferPTR
)
for
(
size_t
j
=
0
;
j
<
processedPixels
;
++
j
,
++
inputOutputBufferPTR
)
*
inputOutputBufferPTR
=*
(
inputOutputBufferPTR
)
*
factor
+
offset
;
}
...
...
@@ -460,10 +460,10 @@ public:
type
X0cube
=
sensitivity
*
sensitivity
*
sensitivity
;
register
type
*
inputBufferPTR
=
inputBuffer
;
register
type
*
outputBufferPTR
=
outputBuffer
;
type
*
inputBufferPTR
=
inputBuffer
;
type
*
outputBufferPTR
=
outputBuffer
;
for
(
register
size_t
j
=
0
;
j
<
_NBpixels
;
++
j
,
++
inputBufferPTR
)
for
(
size_t
j
=
0
;
j
<
_NBpixels
;
++
j
,
++
inputBufferPTR
)
{
type
currentCubeLuminance
=*
inputBufferPTR
**
inputBufferPTR
**
inputBufferPTR
;
...
...
@@ -485,10 +485,10 @@ public:
type
X0
=
maxOutputValue
/
(
sensitivity
-
(
type
)
1.0
);
register
type
*
inputBufferPTR
=
inputBuffer
;
register
type
*
outputBufferPTR
=
outputBuffer
;
type
*
inputBufferPTR
=
inputBuffer
;
type
*
outputBufferPTR
=
outputBuffer
;
for
(
register
size_t
j
=
0
;
j
<
nbPixels
;
++
j
,
++
inputBufferPTR
)
for
(
size_t
j
=
0
;
j
<
nbPixels
;
++
j
,
++
inputBufferPTR
)
*
(
outputBufferPTR
++
)
=
(
meanValue
+
(
meanValue
+
X0
)
*
(
*
(
inputBufferPTR
)
-
meanValue
)
/
(
_abs
(
*
(
inputBufferPTR
)
-
meanValue
)
+
X0
));
}
...
...
@@ -503,12 +503,12 @@ public:
type
meanValue
=
0
,
stdValue
=
0
;
// compute mean value
for
(
register
size_t
j
=
0
;
j
<
_NBpixels
;
++
j
)
for
(
size_t
j
=
0
;
j
<
_NBpixels
;
++
j
)
meanValue
+=
inputOutputBuffer
[
j
];
meanValue
/=
((
type
)
_NBpixels
);
// compute std value
register
type
*
inputOutputBufferPTR
=
inputOutputBuffer
;
type
*
inputOutputBufferPTR
=
inputOutputBuffer
;
for
(
size_t
index
=
0
;
index
<
_NBpixels
;
++
index
)
{
type
inputMinusMean
=*
(
inputOutputBufferPTR
++
)
-
meanValue
;
...
...
modules/bioinspired/src/transientareassegmentationmodule.cpp
View file @
ec6ab8cd
...
...
@@ -462,7 +462,7 @@ void TransientAreasSegmentationModuleImpl::_run(const std::valarray<float> &inpu
float
*
localMotionPTR
=&
_localMotion
[
0
],
*
neighborhoodMotionPTR
=&
_neighborhoodMotion
[
0
],
*
contextMotionPTR
=&
_contextMotionEnergy
[
0
];
// float meanEnergy=LPfilter2.sum()/(float)_LPfilter2.size();
register
bool
*
segmentationPicturePTR
=
&
_segmentedAreas
[
0
];
bool
*
segmentationPicturePTR
=
&
_segmentedAreas
[
0
];
for
(
unsigned
int
index
=
0
;
index
<
_filterOutput
.
getNBpixels
()
;
++
index
,
++
segmentationPicturePTR
,
++
localMotionPTR
,
++
neighborhoodMotionPTR
,
contextMotionPTR
++
)
{
float
generalMotionContextDecision
=*
neighborhoodMotionPTR
-*
contextMotionPTR
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment