![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言实现BMP图像处理
用C语言实现对BMP图像的不同图像算法
傻不拉几的程序员
开放、共享、合作,共赢;
展开
-
C语言实现BMP图像处理(转置)
转置就是旋转90(正反旋转)见:https://blog.csdn.net/fengxianghui01/article/details/84891288后续持续更新用C语言实现图像处理算法,敬请期待,欢迎关注。原创 2018-12-09 14:25:35 · 1820 阅读 · 0 评论 -
C语言实现BMP图像处理(水平/垂直镜像)
#include <Windows.h>#include <stdlib.h>#include <stdio.h>int main(int argc, char** argv){ FILE *fp = fopen("./01.bmp", "rb"); if (fp == 0) return 0; BITMAPFILEHEADER fileH...原创 2018-12-09 14:18:18 · 6569 阅读 · 4 评论 -
C语言实现BMP图像处理(缩放)
对BMP图像用C语言实现图像的缩放。缩放的倍数通过输入设定#include <Windows.h>#include <stdlib.h>#include <stdio.h>#include <math.h>int main(int argc, char ** argv){ FILE *fp = fopen("./01.bmp",...原创 2018-12-08 12:27:41 · 12859 阅读 · 7 评论 -
C语言实现BMP图像处理(任意角度旋转)
原理参考:https://blog.csdn.net/liyuan02/article/details/6750828实现对对任意角度的旋转,具体数学推导网上找。如果各位读者需要使用,只需要将打开文件的位置改为你的位置,输入不同的角度即可:#include <Windows.h>#include <stdio.h>#include <stdlib.h&...原创 2018-12-08 12:19:18 · 10152 阅读 · 25 评论 -
C语言实现BMP图像处理(逆时针旋转90度)
实现图像旋转,首先要对图像的存储,图像的读写比较清楚,在此基础上进行线性变换。以下代码为逆时针旋转90度,后续会给出旋转任意角度的代码:核心还是掌握旋转时的前后变换。变换的过程可以归结为:首先将图像坐标变换为数学坐标,然后在数学坐标上进行变换,然后在进行逆变换,得到在图像坐标上的变换。同时需要求出各个变换的逆变换。#include <Windows.h>#include...原创 2018-12-08 12:07:57 · 11203 阅读 · 12 评论 -
C语言实现BMP图像处理(读取与保存)
// 数据类型说明:// WORD:16位无符号短整形,占2个字节// DWORD:32位无符号短整形,占4个字节// LONG:有符号32位整形,占4个字节// RGBQUAD:用于定义调色板数组元素的类型// LPBITMAPINFOHEADER:位图信息头(BITMAPINFOHEADER)的指针// LOGPALETTE:定义了一个逻辑调色板// LPRGBQUAD:指向R...原创 2018-10-04 15:02:31 · 11554 阅读 · 4 评论 -
C语言实现BMP图像处理(哈夫曼编码)
哈夫曼(Huffman)编码是一种常用的压缩编码方法,是 Huffman 于 1952 年为压缩文本文件建立的。它的基本原理是频繁使用的数据用较短的代码代替,较少使用的数据用较长的代码代替,每个数据的代码各不相同。这些代码都是二进制码,且码的长度是可变的。下面给出具体的 Huffman 编码算法:(1) 首先统计出每个符号出现的频率,上例 S0 到 S7 的出现频率分别为 4...原创 2018-12-25 20:10:58 · 4518 阅读 · 1 评论 -
C语言实现BMP图像处理(边缘检测)
以Sobel算子为例,其余模板算子卷积代码部分同Sobel算子。如:高斯算子、拉普拉斯算子等#include <stdio.h>#include <stdlib.h>#include <Windows.h>#include <math.h>int main(int* argc, char** argv){ FILE* fp = f...原创 2018-12-25 19:44:51 · 4377 阅读 · 3 评论 -
C语言实现BMP图像处理(细化)
细化(thinning)算法有很多,我们在这里介绍的是一种简单而且效果很好的算法,用它就能够实现从文本抽取骨架的功能。我们的对象是白纸黑字的文本,但在程序中为了处理的方便,还是采用 256 级灰度图,不过只用到了调色板中 0 和 255 两项。 所谓细化,就是从原来的图中去掉一些点,但仍要保持原来的形状。实际上,是保持原图的骨架。所谓骨架,可以理解为图象的中轴,例...原创 2018-12-24 22:44:22 · 8228 阅读 · 6 评论 -
C语言实现BMP图像处理(闭运算)
闭运算可以把比结构元素小的特定图像细节出去,同时保证不产生全局的几何失真。填充比结构元素小的缺口或孔,搭接短的间断而起到连接作用。运算:也就是先膨胀后腐蚀。#include <stdio.h>#include <stdlib.h>#include <Windows.h>int main(int* argc, char** argv){ FI...原创 2018-12-24 21:13:01 · 736 阅读 · 3 评论 -
C语言实现BMP图像处理(开运算)
开运算可以把比结构元素小的特定图像细节出去,同时保证不产生全局的几何失真。滤掉比结构元素小的突刺,切断细长搭接而起到分离作用。运算:用B开启A就是选出了A中某些与B相匹配的点,这些点可由完全包含在A中的结构元素B的平移得到。也就是先腐蚀后加膨胀。#include <stdio.h>#include <stdlib.h>#include <Windows....原创 2018-12-24 21:06:07 · 1165 阅读 · 0 评论 -
C语言实现BMP图像处理(腐蚀)
腐蚀同膨胀相反。概念:结构元素B(自己理解,百度很多)。本文中结构元素采用:章毓晋老师的《图像分析》(第三版),286页#include <stdio.h>#include <stdlib.h>#include <Windows.h>int main(int* argc, char** argv){ FILE* fp = fopen("...原创 2018-12-24 20:42:27 · 1634 阅读 · 1 评论 -
C语言实现BMP图像处理(膨胀)
概念:结构元素B(自己理解,百度很多)。膨胀:就是先对B做关于原点的映射,在将映射连续的在A上移动而实现。本文中结构元素采用:章毓晋老师的《图像分析》(第三版),285页#include <stdio.h>#include <stdlib.h>#include <Windows.h>int main(int* argc, char** ar...原创 2018-12-20 20:58:41 · 1192 阅读 · 1 评论 -
C语言实现BMP图像处理(直方图均衡化)
计算步骤:1)统计各灰度值的概率;2)计算了累积概率直方图(CDF);3)取整扩展:Tk = int[ (L-1)*Tk];#include <Windows.h>#include <stdlib.h>#include <stdio.h>#include <math.h>int main(int* argc, char**...原创 2018-12-19 20:14:22 · 7985 阅读 · 3 评论 -
C语言实现BMP图像(阈值化)
原理很简单,小于阈值T赋值0,大于阈值T赋值255; #include<stdio.h>#include<windows.h>int main(int argc, char* argv[]){ int bmpHeight; int bmpWidth; unsigned char *pBmpBuf; RGBQUAD *pColorTable; in...原创 2018-12-18 21:59:30 · 829 阅读 · 1 评论 -
C语言实现BMP图像处理(彩色图转灰度图)
我们知道真彩图不带调色板,每个象素用 3 个字节,表示 R、G、B 三个分量。所以处理很简单,根据 R、G、B 的值求出 Y 值后,将 R、G、B 值都赋值成 Y,写入新图即可。 在YUV 的颜色表示方法中,Y 分量的物理含义就是亮度,它含了灰度图(grayscale)的所有信息,只用 Y 分量就完全能够表示出一幅灰度图来。YUV 和RGB 之间有着如下的对应关系: ...原创 2018-12-18 21:34:27 · 11389 阅读 · 9 评论 -
C语言实现BMP图像处理(反色)
反色的实际含义是将 R、G、B 值反转。若颜色的量化级别是 256,则新图的 R、G、B 值为255 减去原图的 R、G、B 值。这里针对的是所有图,包括真彩图、带调色板的彩色图(又称为伪彩色图)、和灰度图。针对不同种类有不同的处理。#include <Windows.h>#include <stdlib.h>#include <stdio.h>...原创 2018-12-18 19:41:09 · 4694 阅读 · 1 评论 -
C语言实现BMP图像处理(半影调技术)
由二值图象显示出灰度效果的方法,就是我们今天要讲的半影调(halftone)技术,它的一个主要用途就是在只有二值输出的打印机上打印图象,实现方法:图案法和抖动法。图案法(patterning)是指灰度可以用一定比例的黑白点组成的区域表示,从而达到整体图象的灰度感。黑白点的位置选择称为图案化。计算机显示器,打印机,扫描仪等设备的一个重要指标就是分辨率,单位是 dpi(dot per inch...原创 2018-12-17 22:42:48 · 1320 阅读 · 0 评论 -
C语言实现BMP图像处理(滤波)
实现3*3滤波,代码没有对边界处理: #include <Windows.h>#include <stdlib.h>#include <stdio.h>#include <math.h>int main(int argc, char** argv){ FILE *fp = fopen("./01.bmp", "rb"); if ...原创 2018-12-09 15:08:08 · 2854 阅读 · 5 评论