`

C图片处理

阅读更多
1.RGB转素描
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int temp_ex(int **save,int *temp,int tw,int x,int y)
{
int i,j;
int m=0,px,py,t;
for(i=0;i<tw;i++)
for(j=0;j<tw;j++)
{
py=y-tw/2+i;
px=x-tw/2+j;
t=(save[px][py*3]+save[px][py*3+1]+save[px][py*3+2])/3;
m=m+t*temp[i*tw+j];
}
return m;
}
void sumiao(FILE *fp1,int **save)
{

FILE *fp2;
char outfile[20];
int i,j,a,a1,a2,a3;
int **save1,**save2;
save1=(int **)malloc(height*sizeof(int*));
for(i=0;i<height;i++)
save1[i]=(int *)malloc(width*3*sizeof(int));  //保存图像信息,便于操作
save2=(int **)malloc(height*sizeof(int*));
for(i=0;i<height;i++)
save2[i]=(int *)malloc(width*3*sizeof(int));  //保存图像信息,便于操作
int temp[9]={1,1,1,1,-8,1,1,1,1};
int temp1[9]={1,1,-1,1,0,-1,1,-1,-1};
int temp2[9]={1,1,1,-1,0,1,-1,-1,-1};
int temp3[9]={1,1,1,1,4,1,1,1,1};
    printf("输入转换后的bmp文件的文件名:");
    scanf("%s",outfile);
    if((fp2=fopen(outfile,"wb+"))==NULL)
{
printf("cannot open outfile");
   exit(0);
}
fseek(fp1,0L,0);
    for(i=0;i<54;i++)
fputc(fgetc(fp1),fp2);  //文件头部
for(i=0;i<height;i++)
{
for(j=0;j<width*3;j++)
{
save[i][j]=fgetc(fp1);
save1[i][j]=save[i][j];
save2[i][j]=save[i][j];
}
for(j=0;j<extra;j++)
fgetc(fp1);
}
for(i=1;i<height-1;i++)
for(j=1;j<width-1;j++)
{  //拉普拉斯卷积运算
a=temp_ex(save,temp,3,i,j);
a1=fabs(temp_ex(save,temp1,3,i,j));  //杂点检测
a2=fabs(temp_ex(save,temp2,3,i,j));
a3=fmax(a1,a2);
if(a3<25) a=0;
else
{
a=(int)(a*2); 
if(a>255) a=255;
else if(a<32) a=0;
}
a=255-a;  //反色处理
save1[i][j*3]=a;save1[i][j*3+1]=a;save1[i][j*3+2]=a;
}
for(i=1;i<height-1;i++)  //模糊处理
for(j=1;j<width-1;j++)
{
a=temp_ex(save1,temp3,3,i,j)/12;
save2[i][j*3]=a;save2[i][j*3+1]=a;save2[i][j*3+2]=a;
}
fseek(fp2,54L,0);
for(i=0;i<height;i++)
{
for(j=0;j<width*3;j++)
   fputc(save2[i][j],fp2);
for(j=0;j<extra;j++)
fputc(0,fp2);
}

for(i=0;i<height-1;i++)
{
free(save1[i]);
free(save2[i]);
}
fclose(fp2);
}

分享到:
评论

相关推荐

    C语言图像处理教程

    经典的C语言图像处理教材,内容详细,深入浅出,入门必备

    C语言图像处理程序集

    本资源"**C语言图像处理程序集**"提供了一系列用C语言编写的图像处理程序,这将帮助我们深入理解图像处理的原理,并锻炼C语言的编程能力。 图像处理主要涵盖以下几个关键知识点: 1. **图像基础**:图像由像素组成...

    C语言图像处理 详细教程

    C语言图像处理 详细教程 用TC制作图像

    基于 C语言图像处理开发环境 图形变换、滤波器 实验的分析报告.doc

    综上所述,该分析报告详尽地探讨了C语言环境下图像处理的几个关键方面,包括图形变换的实现、滤波器的原理和应用,以及锐化和去噪技术。实验结果验证了理论知识的有效性,并展示了不同处理方法对图像质量的影响,为...

    zhifangtu.zip_c 语言图像处理_c语言图像处理

    在IT领域,C语言图像处理是一项基础且重要的技术,它主要涉及计算机图形学和数字图像处理。本项目“zhifangtu.zip”聚焦于使用C语言进行图像处理,特别是绘制图像直方图以及灰度图像的处理。接下来,我们将深入探讨...

    c语言图像处理

    标题《C语言图像处理》所指涉的知识点涵盖了使用C语言进行图像处理的各种技术,这一领域的中文资料较少,但英文资源相对丰富,如该文档中提到的书籍。 描述中提到的书籍名《Image processing with C/C++》由Marc ...

    C语言图像处理.zip

    本压缩包“C语言图像处理.zip”包含了一系列C语言编写的图像处理程序,这些程序涉及到图像处理的基础技术,如灰度化、马赛克效果、模糊处理、锐化以及水平和垂直镜像翻转。下面将对这些知识点进行详细介绍。 1. **...

    C语言图像处理与机器视觉篇,图像处理C语言,C,C++

    在IT领域,C语言因其高效、灵活和对底层硬件的直接访问能力,常被用于开发图像处理和机器视觉算法。本篇文章将深入探讨C语言在图像处理与机器视觉中的应用,以及如何通过C语言实现相关程序。 首先,图像处理是...

    C语言图像处理

    介绍如何使用C语言实现数字图像处理的过程及数字图像处理的理论

    一个C语言写的小型图像处理库

    标题中的“一个C语言写的小型图像处理库”揭示了这个项目的核心——它是一个使用C语言编写的轻量级图像处理程序库。C语言是一种基础且高效的语言,适合开发底层和性能敏感的软件,比如图像处理库。图像处理库通常...

    C语言图像处理方法.rar_C语言 图像处理_c 图像处理_图像 c语言_图像 读取 显示_图像处理

    图像处理c语言程序,是我精心寻找的,希望大家给个面子

    基于c语言数字图像处理

    c语言数字图像处理(一):bmp图片格式及灰度图片转换 c语言数字图像处理(二):图片放大与缩小-双线性内插法 c语言数字图像处理(三):仿射变换 c语言数字图像处理(四):灰度变换 c语言数字图像处理(五)...

    C语言图像处理方法C语言图像处理方法

    在C语言中,图像处理是一种复杂但有趣的技术,它涉及到图像的几何变换,如平移、颠倒、镜像变换和旋转。以下是对这些概念的详细解释: 1. 图像平移: 图像平移是图像处理中最基础的操作之一,它只改变图像在屏幕上...

    C语言图像处理代码

    在IT领域,C语言因其高效和灵活性而被广泛用于底层编程,包括图像处理。这个名为"C语言图像处理代码"的压缩包很可能包含了多种用于处理图像的C语言源代码,涉及了如中值滤波、直方图处理和旋转平移等核心图像处理...

    c语言图像处理实例

    在图像处理方面,虽然现代有许多高级语言如Python提供了丰富的库来简化图像处理,但C语言依然有其独特的优势,如执行效率高、对硬件控制力强等。这个“C语言图像处理实例”压缩包很可能是为了帮助开发者或学习者通过...

    c语言图像处理大作业代码.zip

    c语言图像处理大作业代码.zip语言图像处理大作业代码.zip语言图像处理大作业代码.zip语言图像处理大作业代码.zip语言图像处理大作业代码.zip语言图像处理大作业代码.zip语言图像处理大作业代码.zip语言图像处理大...

    C语言图像处理与机器视觉篇,图像处理C语言,C,C++源码.zip

    在压缩包文件中,"C语言图像处理与机器视觉篇,图像处理C语言,C,C++源码.rar"可能包含了一系列示例代码和教程,这些资源旨在帮助开发者了解如何用C语言和C++来实现图像处理和机器视觉算法。通过学习这些源码,你可以...

    C语言图像处理程序设计

    C语言图像处理程序设计 非常好的图片处理资料

Global site tag (gtag.js) - Google Analytics