@@ -116,7 +116,7 @@ Mat equalizeIntensity(const Mat& inputImage)
116
116
return Mat ();
117
117
}
118
118
119
- vector<RotatedRect> hsv_method (Mat &image, Mat& imgMask) {
119
+ vector<RotatedRect> hsv_method (Mat &image, Mat& imgMask, bool writeImages ) {
120
120
121
121
// std::cout << "SAMPLE_DETECTOR::Starting YCrCb METHOD" << std::endl;
122
122
@@ -131,35 +131,41 @@ vector<RotatedRect> hsv_method(Mat &image, Mat& imgMask) {
131
131
Scalar (hue_max, saturation_max, value_max),
132
132
hsv_filtered_image);
133
133
134
- cv::imwrite (" Sample-YCrCb-Threshold.png" , hsv_filtered_image);
134
+ if (writeImages)
135
+ cv::imwrite (" Sample-YCrCb-Threshold.png" , hsv_filtered_image);
135
136
136
137
// Erode and Dilate
137
138
obj_tracker.filter (hsv_filtered_image, hsv_erode_size, hsv_dilate_size);
138
139
139
- cv::imwrite (" Sample-YCrCb-Filtered.png" , hsv_filtered_image);
140
+ if (writeImages)
141
+ cv::imwrite (" Sample-YCrCb-Filtered.png" , hsv_filtered_image);
140
142
141
143
// std::cout << "SAMPLE_DETECTOR::Completed YCrCb METHOD" << std::endl;
142
144
143
145
return obj_tracker.track (image,hsv_filtered_image,imgMask);
144
146
}
145
147
146
- vector<RotatedRect> grayscale_method (Mat& image, Mat& imgMask) {
148
+ vector<RotatedRect> grayscale_method (Mat& image, Mat& imgMask, bool writeImages ) {
147
149
148
150
// std::cout << "SAMPLE_DETECTOR::Starting Grayscale METHOD" << std::endl;
149
151
150
152
cvtColor (image, grayscale_image, CV_BGR2GRAY);
151
153
Mat eq_gray;
152
154
equalizeHist (grayscale_image,eq_gray);
153
- cv::imwrite (" Sample-04-Grayscale.png" , grayscale_image);
154
- cv::imwrite (" Sample-Grayscale-equalized.png" , eq_gray);
155
+ if (writeImages) {
156
+ cv::imwrite (" Sample-04-Grayscale.png" , grayscale_image);
157
+ cv::imwrite (" Sample-Grayscale-equalized.png" , eq_gray);
158
+ }
155
159
156
160
threshold (eq_gray, grayscale_filtered_image, min_grayscale_thresh, max_grayscale_thresh, 0 );
157
- cv::imwrite (" Sample-05-Grayscale-Threshold.png" , grayscale_filtered_image);
161
+ if (writeImages)
162
+ cv::imwrite (" Sample-05-Grayscale-Threshold.png" , grayscale_filtered_image);
158
163
159
164
// Erode and Dilate
160
165
obj_tracker.filter (grayscale_filtered_image, grayscale_erode_size, grayscale_dilate_size);
161
166
162
- cv::imwrite (" Sample-06-Grayscale-Filtered.png" , grayscale_filtered_image);
167
+ if (writeImages)
168
+ cv::imwrite (" Sample-06-Grayscale-Filtered.png" , grayscale_filtered_image);
163
169
164
170
// std::cout << "SAMPLE_DETECTOR::Completed Grayscale METHOD" << std::endl;
165
171
@@ -169,27 +175,29 @@ vector<RotatedRect> grayscale_method(Mat& image, Mat& imgMask) {
169
175
// Main Real-Time Loop
170
176
DetectedObject Sample_Detector::run ( Mat& image,
171
177
Mat& maskOutput,
172
- const char * fname)
178
+ const char * fname,
179
+ bool writeImages)
173
180
{
174
181
DetectedObject object;
175
182
object.state = HIDDEN;
176
183
177
184
Mat hsvMask = Mat::zeros (image.size (), CV_8UC3);
178
185
Mat grayMask = Mat::zeros (image.size (), CV_8UC3);
179
- vector<RotatedRect> hsv_tracked_objects = hsv_method (image, hsvMask);
180
- vector<RotatedRect> gray_tracked_objects = grayscale_method (image, grayMask);
186
+ vector<RotatedRect> hsv_tracked_objects = hsv_method (image, hsvMask, writeImages );
187
+ vector<RotatedRect> gray_tracked_objects = grayscale_method (image, grayMask, writeImages );
181
188
vector<RotatedRect> tracked_objects;
182
189
183
190
if ( hsv_tracked_objects.size () > 0 && gray_tracked_objects.size () > 0 )
184
191
{
185
192
Mat AND_image;
186
193
bitwise_and (hsv_filtered_image, grayscale_filtered_image, AND_image);
187
- cv::imwrite (" Sample-07-Bitwise-AND-Filtered.png" , AND_image);
194
+ if (writeImages)
195
+ cv::imwrite (" Sample-07-Bitwise-AND-Filtered.png" , AND_image);
188
196
189
197
Mat bitwise_and_tracked;
190
198
tracked_objects = obj_tracker.track (image, AND_image, maskOutput);
191
- cv::imwrite ( " Sample-08-Bitwise-AND-Tracked.png " , maskOutput);
192
- std::cout << " OBJECT FOUND!!!!! " << std::endl ;
199
+ if (writeImages)
200
+ cv::imwrite ( " Sample-08-Bitwise-AND-Tracked.png " , maskOutput) ;
193
201
} else if ( hsv_tracked_objects.size () > 0 )
194
202
{
195
203
tracked_objects = hsv_tracked_objects;
0 commit comments