Skip to content

Commit 6e0d128

Browse files
author
Moskalenko
committed
Add_Save
1 parent 6e6bbdb commit 6e0d128

File tree

3 files changed

+33
-4
lines changed

3 files changed

+33
-4
lines changed

sample_template/application.cpp

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "application.hpp"
22
#include "processing.hpp"
3+
#include "time.h"
34

45
#include <opencv2/highgui/highgui.hpp>
56

@@ -44,10 +45,13 @@ int Application::drawButtons(Mat &display)
4445
{
4546
guiState.onButtonPlace = Rect(20, display.rows - 60, 120, 40);
4647
guiState.offButtonPlace = Rect(160, display.rows - 60, 120, 40);
48+
guiState.saveButtonPlace = Rect(300, display.rows - 60, 120, 40);
4749
rectangle(display, guiState.onButtonPlace,
4850
Scalar(128, 128, 128), CV_FILLED);
4951
rectangle(display, guiState.offButtonPlace,
5052
Scalar(128, 128, 128), CV_FILLED);
53+
rectangle(display, guiState.saveButtonPlace,
54+
Scalar(128, 128, 128), CV_FILLED);
5155

5256
putText(display, "on",
5357
Point(guiState.onButtonPlace.x + guiState.onButtonPlace.width / 2 - 15,
@@ -57,6 +61,10 @@ int Application::drawButtons(Mat &display)
5761
Point(guiState.offButtonPlace.x + guiState.offButtonPlace.width / 2 - 20,
5862
guiState.offButtonPlace.y + guiState.offButtonPlace.height / 2 + 10),
5963
FONT_HERSHEY_SIMPLEX, 1.0, Scalar(0, 0, 0), 2);
64+
putText(display, "save",
65+
Point(guiState.saveButtonPlace.x + guiState.saveButtonPlace.width / 2 - 30,
66+
guiState.saveButtonPlace.y + guiState.saveButtonPlace.height / 2 + 10),
67+
FONT_HERSHEY_SIMPLEX, 1.0, Scalar(0, 0, 0), 2);
6068

6169
return 0;
6270
}
@@ -77,12 +85,28 @@ int Application::showFrame(const std::string &caption,
7785
return 1;
7886
}
7987

88+
8089
Mat display(src.rows, src.cols + dst.cols, src.type());
8190
Mat srcRoi = display(Rect(0, 0, src.cols, src.rows));
8291
src.copyTo(srcRoi);
8392
Mat dstRoi = display(Rect(src.cols, 0, dst.cols, dst.rows));
8493
dst.copyTo(dstRoi);
8594

95+
96+
if (guiState.saveState)
97+
{
98+
// ïîëó÷èòü òåêóùåå âðåìÿ
99+
// ñãåíåðèðîâàòü íàçâàíèå èçîáðàæåíèÿ
100+
// <image_name> - ñãåíåðèðîâàííîå íàçâàíèå èçîáðàæåíèÿ
101+
// ñ ìåòêîé òåêóùåãî âðåìåíè
102+
// âûçâàòü ôóíêöèþ ñîõðàíåíèÿ imwrite(<image_name>, display)
103+
// ñáðîñèòü çíà÷åíèå guiState.saveState â false
104+
String imgString = "image" + std::to_string(time(0));
105+
imwrite(imgString+".jpg",display);
106+
guiState.saveState = false;
107+
}
108+
109+
86110
drawButtons(display);
87111

88112
namedWindow(caption);
@@ -111,6 +135,11 @@ void onButtonsOnOffClick(int eventId, int x, int y, int flags, void *userData)
111135
elems->state = Application::OffFilter;
112136
return;
113137
}
138+
if (onButtonClicked(elems->saveButtonPlace, x, y))
139+
{
140+
elems->saveState = true;
141+
return;
142+
}
114143
}
115144

116145
bool onButtonClicked(cv::Rect buttonPlace, int x, int y)

sample_template/application.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include <iostream>
55
#include <opencv2/core/core.hpp>
66

7+
78
#include "processing.hpp"
89

910
bool onButtonClicked(cv::Rect buttonPlace, int x, int y);
@@ -26,6 +27,8 @@ class Application
2627
WindowState state;
2728
cv::Rect onButtonPlace;
2829
cv::Rect offButtonPlace;
30+
cv::Rect saveButtonPlace;
31+
bool saveState;
2932
};
3033
int parseArguments(int argc, const char **argv, Parameters &params);
3134
int getFrame(const std::string &fileName, cv::Mat& src);
@@ -37,6 +40,7 @@ class Application
3740
Application()
3841
{
3942
guiState.state = OnFilter;
43+
guiState.saveState=false;
4044
};
4145

4246
private:

sample_template/processing.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@ void Processing::processFrame(const cv::Mat& src, cv::Mat& dst)
1010
{
1111
src.copyTo(dst);
1212

13-
time_t t;
14-
t = time(0);
15-
16-
//cv::Rect region(src.rows/4, src.cols/4, src.rows/2, src.cols/2);
1713
int a = clock()/100;
1814
cv::Rect region((a*a)%(src.rows/2 - 1), a%(src.cols/2 - 1), src.rows/2, src.cols/2);
1915
Mat roi = dst(region);

0 commit comments

Comments
 (0)