ACME-1301 : Add convolve as a secondary filter command
parent
225fb4e782
commit
9112a47f9b
|
|
@ -0,0 +1,18 @@
|
|||
<llsd>
|
||||
<array>
|
||||
<array>
|
||||
<string>convolve</string>
|
||||
<real>1.0</real>
|
||||
<real>0.0</real>
|
||||
<real>4.0</real>
|
||||
<real>1.0</real>
|
||||
<real>4.0</real>
|
||||
<real>1.0</real>
|
||||
<real>0.0</real>
|
||||
<real>1.0</real>
|
||||
<real>4.0</real>
|
||||
<real>1.0</real>
|
||||
<real>4.0</real>
|
||||
</array>
|
||||
</array>
|
||||
</llsd>
|
||||
|
|
@ -230,21 +230,32 @@ void LLImageFilter::executeFilter(LLPointer<LLImageRaw> raw_image)
|
|||
else if (filter_name == "sharpen")
|
||||
{
|
||||
LLMatrix3 kernel;
|
||||
for (S32 i = 0; i < NUM_VALUES_IN_MAT3; i++)
|
||||
for (S32 k = 0; k < NUM_VALUES_IN_MAT3; k++)
|
||||
for (S32 j = 0; j < NUM_VALUES_IN_MAT3; j++)
|
||||
kernel.mMatrix[i][j] = -1.0;
|
||||
kernel.mMatrix[k][j] = -1.0;
|
||||
kernel.mMatrix[1][1] = 9.0;
|
||||
convolve(kernel,false,false);
|
||||
}
|
||||
else if (filter_name == "gradient")
|
||||
{
|
||||
LLMatrix3 kernel;
|
||||
for (S32 i = 0; i < NUM_VALUES_IN_MAT3; i++)
|
||||
for (S32 k = 0; k < NUM_VALUES_IN_MAT3; k++)
|
||||
for (S32 j = 0; j < NUM_VALUES_IN_MAT3; j++)
|
||||
kernel.mMatrix[i][j] = -1.0;
|
||||
kernel.mMatrix[k][j] = -1.0;
|
||||
kernel.mMatrix[1][1] = 8.0;
|
||||
convolve(kernel,false,true);
|
||||
}
|
||||
else if (filter_name == "convolve")
|
||||
{
|
||||
LLMatrix3 kernel;
|
||||
S32 index = 1;
|
||||
bool normalize = (mFilterData[i][index++].asReal() > 0.0);
|
||||
bool abs_value = (mFilterData[i][index++].asReal() > 0.0);
|
||||
for (S32 k = 0; k < NUM_VALUES_IN_MAT3; k++)
|
||||
for (S32 j = 0; j < NUM_VALUES_IN_MAT3; j++)
|
||||
kernel.mMatrix[k][j] = mFilterData[i][index++].asReal();
|
||||
convolve(kernel,normalize,abs_value);
|
||||
}
|
||||
else
|
||||
{
|
||||
llwarns << "Filter unknown, cannot execute filter command : " << filter_name << llendl;
|
||||
|
|
|
|||
Loading…
Reference in New Issue