Skip to content

Commit 86809b7

Browse files
committed
add functions to set new sensor features
- white pixel correction - black pixel correction - denoise control - lens correction - raw gamma
1 parent 6439c4b commit 86809b7

File tree

2 files changed

+102
-2
lines changed

2 files changed

+102
-2
lines changed

src/esp32cam.cpp

Lines changed: 71 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ CameraClass::changeAecValue(int iValue)
262262
return false;
263263
}
264264

265-
if (sensor->set_agc_gain(sensor, iValue) == 0) {
265+
if (sensor->set_aec_value(sensor, iValue) == 0) {
266266
return true;
267267
} else
268268
return false;
@@ -296,6 +296,76 @@ CameraClass::changVFlip(int iEnable)
296296
return false;
297297
}
298298

299+
bool
300+
CameraClass::changBPC(int iEnable)
301+
{
302+
sensor_t* sensor = esp_camera_sensor_get();
303+
if (sensor == nullptr) {
304+
return false;
305+
}
306+
307+
if (sensor->set_bpc(sensor, iEnable) == 0) {
308+
return true;
309+
} else
310+
return false;
311+
}
312+
313+
bool
314+
CameraClass::changWPC(int iEnable)
315+
{
316+
sensor_t* sensor = esp_camera_sensor_get();
317+
if (sensor == nullptr) {
318+
return false;
319+
}
320+
321+
if (sensor->set_wpc(sensor, iEnable) == 0) {
322+
return true;
323+
} else
324+
return false;
325+
}
326+
327+
bool
328+
CameraClass::changDenoise(int iEnable)
329+
{
330+
sensor_t* sensor = esp_camera_sensor_get();
331+
if (sensor == nullptr) {
332+
return false;
333+
}
334+
335+
if (sensor->set_denoise(sensor, iEnable) == 0) {
336+
return true;
337+
} else
338+
return false;
339+
}
340+
341+
bool
342+
CameraClass::changLenc(int iEnable)
343+
{
344+
sensor_t* sensor = esp_camera_sensor_get();
345+
if (sensor == nullptr) {
346+
return false;
347+
}
348+
349+
if (sensor->set_lenc(sensor, iEnable) == 0) {
350+
return true;
351+
} else
352+
return false;
353+
}
354+
355+
bool
356+
CameraClass::changRawGMA(int iEnable)
357+
{
358+
sensor_t* sensor = esp_camera_sensor_get();
359+
if (sensor == nullptr) {
360+
return false;
361+
}
362+
363+
if (sensor->set_raw_gma(sensor, iEnable) == 0) {
364+
return true;
365+
} else
366+
return false;
367+
}
368+
299369
std::unique_ptr<Frame>
300370
CameraClass::capture()
301371
{

src/esp32cam.h

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,12 +141,42 @@ class CameraClass
141141
*/
142142
bool
143143
changVFlip(int iEnable);
144+
145+
/** \brief Enable/Disable black pixel correction
146+
* \param iEnable must be 0(disable) or 1 (enable)
147+
*/
148+
bool
149+
changBPC(int iEnable);
150+
151+
/** \brief Enable/Disable white pixel correction
152+
* \param iEnable must be 0(disable) or 1 (enable)
153+
*/
154+
bool
155+
changWPC(int iEnable);
156+
157+
/** \brief Enable/Disable Denoise Control
158+
* \param iEnable must be 0(disable) or 1 (enable)
159+
*/
160+
bool
161+
changDenoise(int iEnable);
162+
163+
/** \brief Enable/Disable Lenc Correction
164+
* \param iEnable must be 0(disable) or 1 (enable)
165+
*/
166+
bool
167+
changLenc(int iEnable);
168+
169+
/** \brief Enable/Disable RAW Gamma
170+
* \param iEnable must be 0(disable) or 1 (enable)
171+
*/
172+
bool
173+
changRawGMA(int iEnable);
144174

145175
/** \brief Capture a frame of picture.
146176
*/
147177
std::unique_ptr<Frame>
148178
capture();
149-
179+
150180
struct StreamMjpegConfig
151181
{
152182
/// minimum interval between frame captures.

0 commit comments

Comments
 (0)