fix to formating
This commit is contained in:
parent
eff1b59f46
commit
3d4df8ac7f
|
|
@ -20,12 +20,15 @@
|
||||||
//------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------
|
||||||
void normalizeKernel(float *kernel, int size){
|
void normalizeKernel(float *kernel, int size){
|
||||||
float sum = 0.0f;
|
float sum = 0.0f;
|
||||||
for(int i = 0; i < size; i++){
|
for(int i = 0; i < size; i++)
|
||||||
|
{
|
||||||
sum += kernel[i];
|
sum += kernel[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
if(sum != 0.0f){
|
if(sum != 0.0f)
|
||||||
for(int i = 0; i < size; i++){
|
{
|
||||||
|
for(int i = 0; i < size; i++)
|
||||||
|
{
|
||||||
kernel[i] /= sum;
|
kernel[i] /= sum;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -66,7 +69,8 @@ int main(void)
|
||||||
ImageKernelConvolution(&catSobel, sobelkernel, 9);
|
ImageKernelConvolution(&catSobel, sobelkernel, 9);
|
||||||
|
|
||||||
Image catGaussian = ImageCopy(image);
|
Image catGaussian = ImageCopy(image);
|
||||||
for(int i = 0; i < 6; i++){
|
for(int i = 0; i < 6; i++)
|
||||||
|
{
|
||||||
ImageKernelConvolution(&catGaussian, gaussiankernel, 9);
|
ImageKernelConvolution(&catGaussian, gaussiankernel, 9);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2100,19 +2100,11 @@ void ImageKernelConvolution(Image *image, float* kernel, int kernelSize){
|
||||||
Vector4 *temp = RL_MALLOC(kernelSize*sizeof(Vector4));
|
Vector4 *temp = RL_MALLOC(kernelSize*sizeof(Vector4));
|
||||||
|
|
||||||
|
|
||||||
float normKernel = 0.0f;
|
|
||||||
for(int i = 0; i < kernelSize; i++){
|
for(int i = 0; i < kernelSize; i++){
|
||||||
temp[i].x = 0.0f;
|
temp[i].x = 0.0f;
|
||||||
temp[i].y = 0.0f;
|
temp[i].y = 0.0f;
|
||||||
temp[i].z = 0.0f;
|
temp[i].z = 0.0f;
|
||||||
temp[i].w = 0.0f;
|
temp[i].w = 0.0f;
|
||||||
normKernel += kernel[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
if(normKernel != 0.0f){
|
|
||||||
for(int i = 0; i < kernelSize; i++){
|
|
||||||
kernel[i] /= normKernel;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
float rRes = 0.0f;
|
float rRes = 0.0f;
|
||||||
|
|
@ -2122,18 +2114,24 @@ void ImageKernelConvolution(Image *image, float* kernel, int kernelSize){
|
||||||
|
|
||||||
|
|
||||||
int startRange, endRange;
|
int startRange, endRange;
|
||||||
if(kernelWidth % 2 == 0){
|
if(kernelWidth % 2 == 0)
|
||||||
|
{
|
||||||
startRange = -kernelWidth/2;
|
startRange = -kernelWidth/2;
|
||||||
endRange = kernelWidth/2;
|
endRange = kernelWidth/2;
|
||||||
} else {
|
} else
|
||||||
|
{
|
||||||
startRange = -kernelWidth/2;
|
startRange = -kernelWidth/2;
|
||||||
endRange = kernelWidth/2+1;
|
endRange = kernelWidth/2+1;
|
||||||
}
|
}
|
||||||
for(int x = 0; x < image->height; x++) {
|
for(int x = 0; x < image->height; x++)
|
||||||
for(int y = 0; y < image->width; y++) {
|
{
|
||||||
|
for(int y = 0; y < image->width; y++)
|
||||||
|
{
|
||||||
|
|
||||||
for(int xk = startRange; xk < endRange; xk++){
|
for(int xk = startRange; xk < endRange; xk++)
|
||||||
for(int yk = startRange; yk < endRange; yk++){
|
{
|
||||||
|
for(int yk = startRange; yk < endRange; yk++)
|
||||||
|
{
|
||||||
int xkabs = xk + kernelWidth/2;
|
int xkabs = xk + kernelWidth/2;
|
||||||
int ykabs = yk + kernelWidth/2;
|
int ykabs = yk + kernelWidth/2;
|
||||||
size_t imgindex = image->width * (x+xk) + (y+yk);
|
size_t imgindex = image->width * (x+xk) + (y+yk);
|
||||||
|
|
@ -2151,30 +2149,37 @@ void ImageKernelConvolution(Image *image, float* kernel, int kernelSize){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int i = 0; i < kernelSize; i++){
|
for(int i = 0; i < kernelSize; i++)
|
||||||
|
{
|
||||||
rRes += temp[i].x;
|
rRes += temp[i].x;
|
||||||
gRes += temp[i].y;
|
gRes += temp[i].y;
|
||||||
bRes += temp[i].z;
|
bRes += temp[i].z;
|
||||||
aRes += temp[i].w;
|
aRes += temp[i].w;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(rRes < 0.0f){
|
if(rRes < 0.0f)
|
||||||
|
{
|
||||||
rRes = 0.0f;
|
rRes = 0.0f;
|
||||||
}
|
}
|
||||||
if(gRes < 0.0f){
|
if(gRes < 0.0f)
|
||||||
|
{
|
||||||
gRes = 0.0f;
|
gRes = 0.0f;
|
||||||
}
|
}
|
||||||
if(bRes < 0.0f){
|
if(bRes < 0.0f)
|
||||||
|
{
|
||||||
bRes = 0.0f;
|
bRes = 0.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(rRes > 1.0f){
|
if(rRes > 1.0f)
|
||||||
|
{
|
||||||
rRes = 1.0f;
|
rRes = 1.0f;
|
||||||
}
|
}
|
||||||
if(gRes > 1.0f){
|
if(gRes > 1.0f)
|
||||||
|
{
|
||||||
gRes = 1.0f;
|
gRes = 1.0f;
|
||||||
}
|
}
|
||||||
if(bRes > 1.0f){
|
if(bRes > 1.0f)
|
||||||
|
{
|
||||||
bRes = 1.0f;
|
bRes = 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2188,7 +2193,8 @@ void ImageKernelConvolution(Image *image, float* kernel, int kernelSize){
|
||||||
bRes = 0.0f;
|
bRes = 0.0f;
|
||||||
aRes = 0.0f;
|
aRes = 0.0f;
|
||||||
|
|
||||||
for(int i = 0; i < kernelSize; i++){
|
for(int i = 0; i < kernelSize; i++)
|
||||||
|
{
|
||||||
temp[i].x = 0.0f;
|
temp[i].x = 0.0f;
|
||||||
temp[i].y = 0.0f;
|
temp[i].y = 0.0f;
|
||||||
temp[i].z = 0.0f;
|
temp[i].z = 0.0f;
|
||||||
|
|
@ -2197,7 +2203,8 @@ void ImageKernelConvolution(Image *image, float* kernel, int kernelSize){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < (image->width)*(image->height); i++) {
|
for (int i = 0; i < (image->width) * (image->height); i++)
|
||||||
|
{
|
||||||
float alpha = (float)imageCopy2[i].w;
|
float alpha = (float)imageCopy2[i].w;
|
||||||
pixels[i].r = (unsigned char)((imageCopy2[i].x)*255.0f);
|
pixels[i].r = (unsigned char)((imageCopy2[i].x)*255.0f);
|
||||||
pixels[i].g = (unsigned char)((imageCopy2[i].y)*255.0f);
|
pixels[i].g = (unsigned char)((imageCopy2[i].y)*255.0f);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user