@@ -1105,7 +1105,9 @@ top_hat_func(const Device::Pointer & device,
1105
1105
1106
1106
/* *
1107
1107
* @name extended_depth_of_focus_variance_projection
1108
- * @brief Extended depth of focus projection maximizing local pixel intensity variance.
1108
+ * @brief Depth projection using the local variance maxima to determine the best focus plane.
1109
+ * The radius parameter control the local variance calculation, and the sigma apply a
1110
+ * gaussian blur for smoothness of the projection.
1109
1111
*
1110
1112
* @param device Device to perform the operation on. [const Device::Pointer &]
1111
1113
* @param src Input image to process. [const Array::Pointer &]
@@ -1125,6 +1127,51 @@ extended_depth_of_focus_variance_projection_func(const Device::Pointer & device,
1125
1127
float radius_y,
1126
1128
float sigma) -> Array::Pointer;
1127
1129
1130
+ /* *
1131
+ * @name extended_depth_of_focus_sobel_projection
1132
+ * @brief Depth projection using the local sobel gradient magnitude maxima to determine the best focus plane.
1133
+ * The sigma apply a gaussian blur for smoothness of the projection.
1134
+ *
1135
+ * @param device Device to perform the operation on. [const Device::Pointer &]
1136
+ * @param src Input image to process. [const Array::Pointer &]
1137
+ * @param dst Output result image. [Array::Pointer ( = None )]
1138
+ * @param sigma Sigma for Gaussian blur. [float ( = 5 )]
1139
+ * @return Array::Pointer
1140
+ *
1141
+ * @note 'projection'
1142
+ */
1143
+ auto
1144
+ extended_depth_of_focus_sobel_projection_func (const Device::Pointer & device,
1145
+ const Array::Pointer & src,
1146
+ Array::Pointer dst,
1147
+ float sigma) -> Array::Pointer;
1148
+
1149
+ /* *
1150
+ * @name hessian_gaussian_eigenvalues
1151
+ * @brief Determines the Hessian matrix eigenvalues using the gaussian derivative method and returns the small,
1152
+ * middle and large eigenvalue images.
1153
+ *
1154
+ * The function return the list of eigenvalues as images, by decreasing order. The first image is the largest
1155
+ * eigenvalue,
1156
+ *
1157
+ * @param device Device to perform the operation on. [const Device::Pointer &]
1158
+ * @param src Input image to process. [const Array::Pointer &]
1159
+ * @param small_eigenvalue Output result image for the small eigenvalue. [Array::Pointer ( = None )]
1160
+ * @param middle_eigenvalue Output result image for the middle eigenvalue. [Array::Pointer ( = None )]
1161
+ * @param large_eigenvalue Output result image for the large eigenvalue. [Array::Pointer ( = None )]
1162
+ * @param sigma Sigma of the Gaussian kernel. [float ( = 1 )]
1163
+ * @return std::vector<Array::Pointer>
1164
+ *
1165
+ */
1166
+ auto
1167
+ hessian_gaussian_eigenvalues_func (const Device::Pointer & device,
1168
+ const Array::Pointer & src,
1169
+ Array::Pointer small_eigenvalue,
1170
+ Array::Pointer middle_eigenvalue,
1171
+ Array::Pointer large_eigenvalue,
1172
+ float sigma) -> std::vector<Array::Pointer>;
1173
+
1174
+
1128
1175
} // namespace cle::tier2
1129
1176
1130
1177
#endif // __INCLUDE_TIER2_HPP
0 commit comments