# DigitalImageP **Repository Path**: brieftime/digital-image-p ## Basic Information - **Project Name**: DigitalImageP - **Description**: 数字图像处理的学习 - **Primary Language**: C - **License**: Zlib - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-04-25 - **Last Updated**: 2024-04-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 2023/8/15 为了学习数字图像处理 https://www.zhihu.com/column/c_1676901475568291840 相关文章 ======================================= 用到的外部库: raylib version: 4.5.0,静态库,从源代码编译。GUI 库。 FreeImage 3.18, 动态库, 图片解析库。(mac: brew install freeimage) FFTW 3.3.10, windows动态库,Mac静态库,从源代码编译成 float 型,FFT 库。 ======================================= 不知道为什么,FreeImage, FFTW, 在windows编译时,静态库特别大,有几十兆;动态库只有几兆。 所以最终选择了动态库。 1.编译raylib,需要把 src/config.h //#define SUPPORT_FILEFORMAT_BMP 1 //#define SUPPORT_FILEFORMAT_JPG 1 去掉注释,否则不支持 bmp, jpg 默认只支持 png, gif 2. Visual Studio 2019,win10 调试的时候,用的终端,是 code page 937 需要修改:控制面板 - 区域 - 设置成utf-8 然后调试的时候,终端可以正确显示中文了。 开发记录: 2023年8月17日: 完成了扫描,移动特效。 8/19: GPU 渲染到 CPU 渲染 2023/8/20: 使用FreeImage库,支持TIFF格式图片 2023/8/27: 处理多图片的程序框架 multi_image_skelton.c 8/31: 学完第3章,并且实现了相应算法 9/19: 学完第4章,并且实现了相关算法 ======================================= 可执行程序说明: ./basic 图像特效显示,请输入数字 1 - 9: 1. 扫描 2. 移动 3. 交叉飞入 4. 百叶窗特效 5. 马赛克 6. 水平栅条 7. 图像渐显 8. 中间扩张 9. 中间收缩 ./geometric 请输入数字 1 - 7: 1. 图像平移 2. 水平镜像 3. 垂直镜像 4. 图像转置 5. 图像缩小 6. 图像放大 7. 图像旋转 ======================================= 以下是学习 《数字图像处理》冈萨雷斯,第3版,示例代码实现 第3章:灰度变换与空间滤波 ./intensity: 灰度变换 请输入数字 1 - 7: 1. 图像反转 2. 伽马校正 gamma < 1 3. 伽马校正 gamma > 1 4. 直方图均衡 5. 直方图匹配 6. 局部直方图 7. 直方图统计 ./spatial_filter : 空间滤波 请输入数字 1 - 8: 1. 平滑线性滤波器 2. 统计排序滤波器 3. 拉普拉斯算子锐化 4. 高增滤波锐化 5. 梯度锐化 6. 混合空间滤波 7. 模糊集合灰度变换 8. 模糊集合空间滤波 第4章:频率域滤波 ./freq_filter 请输入数字 1 - 6: 1. 长方形块频谱 2. 从相角恢复图片 3. 从时域滤波到频域 4. 频域低通滤波 5. 频域高通滤波 6. 频域带通滤波 第5章:图像复原与重建 ./restoration 请输入数字 1 - 7: 1. 空间均值滤波 2. 空间统计排序滤波 3. 空间自适应滤波 4. 频域陷波滤波 5. 运动导致的图像模糊 6. 频域直接逆滤波 7. 频域最小均方差滤波 Wiener 第6章:彩色图像处理 ./colorimage 请输入数字 1 - 5: 1. 直方图均衡 2. 图像平滑 3. 图像锐化 4. 图像分割 5. 边缘检测 第9章:形态学图像处理 二值灰度图像的形态学处理 ./morphology 请输入数字 1 - 9: 1. 腐蚀 2. 膨胀 3. 开操作和闭操作 4. 边界提取 5. 孔洞填充 6. 检测包装食品 7. 重建开操作 8. 填充孔洞 9. 边界清除 灰度级形态学 ./morph_gray ======================================= FFTW 3.3.10 mac: 静态链接库 windows: V0.6.0 之前用静态链接库,之后用动态链接库 #include #include "fftw3.h" -lm -lfftw3f Mac compile: ./configure --enable-single make Windows: res/fftw3310libs 把这个文件夹拷贝到 FFTW 3.3.10 源代码目录下,就可以编译成 dll / lib 2023/9/9: 为什么windows 下用dll? 因为dll 文件小,lib 文件大 而且不知道为什么,应用程序最后链接lib 文件时很慢。 =======================================