ov2640: support sharpness control

This commit is contained in:
Joo Aun Saw
2024-01-30 17:27:57 +11:00
committed by CaCO3
parent a8fb88a35d
commit 69f1a99b55
10 changed files with 276 additions and 49 deletions

View File

@@ -184,7 +184,7 @@
</tr>
<tr>
<td><label for="negative" id="labelnegative">Negative:</label></td>
<td><input type="checkbox" id="negative" name="negative" value="0"></td>
<td><input type="checkbox" id="negative" name="negative" value="0" onchange="drawRotated()"></td>
<td>
<class id="TakeImage_AutoExposureLevel_text" style="color:black;">Auto exposure:</class>
</td>
@@ -193,6 +193,17 @@
<output id="TakeImage_AutoExposureLevel_value1_output" style="vertical-align:middle; min-width:15px; padding-right:5px; text-align:right; float:left">0</output>
</td>
</tr>
<tr>
<td></td>
<td></td>
<td>
<class id="TakeImage_Sharpness_text" style="color:black;">Sharpness:</class>
</td>
<td>
<input style="clear: both; width: 80%;vertical-align:middle" type="range" id="TakeImage_Sharpness_value1" size="13" value=0 min="-4" max="3" oninput="this.nextElementSibling.value = this.value">
<output id="TakeImage_Sharpness_value1_output" style="vertical-align:middle; min-width:15px; padding-right:5px; text-align:right; float:left">0</output>
</td>
</tr>
</table>
<table>
<colgroup>
@@ -257,11 +268,13 @@
_brightness = document.getElementById("TakeImage_Brightness_value1").value;
_contrast = document.getElementById("TakeImage_Contrast_value1").value;
_saturation = document.getElementById("TakeImage_Saturation_value1").value;
_sharpness = document.getElementById("TakeImage_Sharpness_value1").value;
_ae = document.getElementById("TakeImage_AutoExposureLevel_value1").value;
url = getDomainname() + "/editflow?task=test_take&bri=" + _brightness;
url = url + "&con=" + _contrast + "&sat=" + _saturation + "&int=" + _intensity + "&ae=" + _ae + "&gs=" + _grayscale + "&ne=" + _negative + "&a2=" + _aec2;
url = url + "&con=" + _contrast + "&sat=" + _saturation + "&sh=" + _sharpness + "&int=" + _intensity + "&gs=" + _grayscale + "&ne=" + _negative + "&z=" + _zoom;
if (_zoom != '0')
url = url + "&z=" + _zoom + "&zm=" + _zm + "&x=" + _x + "&y=" + _y;
url = url + "&zm=" + _zm + "&x=" + _x + "&y=" + _y;
url = url + "&ae=" + _ae + "&a2=" + _aec2;
}
else
{
@@ -320,6 +333,7 @@
document.getElementById("TakeImage_Brightness_value1").disabled = false;
document.getElementById("TakeImage_Contrast_value1").disabled = false;
document.getElementById("TakeImage_Saturation_value1").disabled = false;
document.getElementById("TakeImage_Sharpness_value1").disabled = false;
document.getElementById("TakeImage_LEDIntensity_value1").disabled = false;
}
else
@@ -374,6 +388,7 @@
document.getElementById("TakeImage_Brightness_value1").disabled = true;
document.getElementById("TakeImage_Saturation_value1").disabled = true;
document.getElementById("TakeImage_Contrast_value1").disabled = true;
document.getElementById("TakeImage_Sharpness_value1").disabled = true;
document.getElementById("TakeImage_LEDIntensity_value1").disabled = true;
document.getElementById("mirror").disabled = false;
document.getElementById("flip").disabled = false;
@@ -450,6 +465,7 @@
ReadParameter(param, "TakeImage", "Brightness", false);
ReadParameter(param, "TakeImage", "Contrast", false);
ReadParameter(param, "TakeImage", "Saturation", false);
ReadParameter(param, "TakeImage", "Sharpness", false);
ReadParameter(param, "TakeImage", "LEDIntensity", false);
ReadParameter(param, "TakeImage", "AutoExposureLevel", false);
}
@@ -523,6 +539,7 @@
param["TakeImage"]["Brightness"]["enabled"] = true;
param["TakeImage"]["Contrast"]["enabled"] = true;
param["TakeImage"]["Saturation"]["enabled"] = true;
param["TakeImage"]["Sharpness"]["enabled"] = true;
param["TakeImage"]["Grayscale"]["enabled"] = true;
param["TakeImage"]["Negative"]["enabled"] = true;
@@ -593,6 +610,11 @@
param["TakeImage"]["Saturation"]["found"] = true;
param["TakeImage"]["Saturation"]["value1"] = "0";
}
if (!param["TakeImage"]["Sharpness"]["found"])
{
param["TakeImage"]["Sharpness"]["found"] = true;
param["TakeImage"]["Sharpness"]["value1"] = "0";
}
UpdateInput();
showReference(param);
@@ -604,6 +626,7 @@
WriteParameter(param, category, "TakeImage", "Brightness", false, true);
WriteParameter(param, category, "TakeImage", "Contrast", false, true);
WriteParameter(param, category, "TakeImage", "Saturation", false, true);
WriteParameter(param, category, "TakeImage", "Sharpness", false, true);
WriteParameter(param, category, "TakeImage", "LEDIntensity", false);
if (param["TakeImage"]["Grayscale"].value1 == "true") {
document.getElementById("grayscale").checked = true;
@@ -724,6 +747,11 @@
context.clearRect(0,0,canvas.width,canvas.height);
context.save();
negative = document.getElementById("negative").checked;
if (negative) {
context.filter = 'invert(1)';
}
if (isActReference)
{
context.drawImage(imageObj,0,0);