Skip to content

HarryHello/LocalWeb-Image-Processor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

图像处理程序

项目简介

本项目是一个功能完整的图像处理程序,实现了图像I/O、数据压缩、彩色转灰度、图像缩放等基本功能,并提供了Web界面交互。项目采用C++语言实现,使用OpenCV作为核心图像处理库,结合Crow框架提供Web服务。

本项目是数据结构与算法的课程项目。

功能特性

1. 图像数据的读取与写入存储

  • 支持多种图像格式的读取(JPG、PNG、PPM等)
  • 图像显示功能
  • 处理后图像的保存

2. 图像数据的压缩存储

  • 三元组结构表示图像(行、列、像素值)
  • 实现三元组数据的压缩存储算法
  • 支持压缩数据的解码与还原

3. 彩色图像处理

  • 彩色图像转灰度图像(支持自定义权重)
  • 图像亮度和对比度调整
  • 图像饱和度调整
  • 图像直方图均衡化
  • 图像反色处理

4. 图像尺寸缩放

  • 图像放大至指定尺寸
  • 图像缩小至指定尺寸
  • 支持不同的插值算法

5. Web界面交互

  • 基于Crow框架的轻量级Web服务器
  • 直观的浏览器界面
  • 支持图像上传、处理和下载

文件结构说明

image_processor/
├── .gitignore                # Git忽略文件配置
├── 3rdparty/                 # 第三方依赖库
│   ├── asio/                 # asio库,Crow框架的依赖
│   ├── crow/                 # Crow Web框架
│   └── opencv/               # OpenCV图像处理库
├── assets/                   # 测试图像资源
├── build/                    # 编译输出目录
├── include/                  # 项目头文件
│   ├── color_processing.hpp  # 颜色处理功能声明
│   ├── compression.hpp       # 图像压缩功能声明
│   ├── image_io.hpp          # 图像I/O功能声明
│   ├── image_scaling.hpp     # 图像缩放功能声明
│   ├── logger.hpp            # 日志功能声明
│   └── web_server.hpp        # Web服务器声明
├── src/                      # 源代码目录
│   ├── core/                 # 核心图像处理实现
│   │   ├── color_processing.cpp  # 颜色处理实现
│   │   ├── compression.cpp       # 图像压缩实现
│   │   ├── image_io.cpp          # 图像I/O实现
│   │   ├── image_scaling.cpp     # 图像缩放实现
│   │   └── logger.cpp            # 日志功能实现
│   ├── ui/                   # Web服务器实现
│   │   └── web_server.cpp    # Crow Web服务器实现
│   └── main.cpp              # 程序入口
├── test/                     # 测试目录
├── web/                      # Web前端资源
|   ├── js/                   # 前端交互脚本
│   │   ├── color.js          # 颜色操作脚本
│   │   ├── download.js       # 下载操作脚本
│   │   ├── main.js           # 主脚本
│   │   ├── process.js        # 主处理脚本
│   │   ├── scale.js          # 缩放操作脚本
│   │   ├── scroll_control.js # 鼠标滚轮辅助脚本
│   │   ├── state.js          # 脚本间内容共享
│   │   └── upload_area.js    # 图像上传区域脚本
│   ├── index.html            # Web界面主文件
│   └── style.css             # 前端样式定义
├── CMakeLists.txt            # 项目构建配置文件
└── README.md                 # 项目介绍

技术栈

  • 编程语言: C++
  • 图像处理库: OpenCV
  • Web框架: Crow (基于asio)
  • 构建系统: CMake

编译与运行

编译

  1. 确保已安装CMake和C++编译器
  2. 在项目根目录创建build目录(如果不存在)
  3. 进入build目录,运行CMake和编译命令
mkdir -p build
cd build
cmake ..
cmake --build .

运行

  1. 编译成功后,在build目录中找到可执行文件
  2. 运行程序
./ImageProcessor
  1. 程序启动后,会询问是否启动Web服务器
  2. 输入"y"启动服务器,然后在浏览器中访问 http://localhost:8000
  3. 上传图像并使用各种图像处理功能

使用说明

Web界面使用

  1. 上传图像: 点击"选择文件"按钮上传图像文件
  2. 图像处理:
    • 彩色转灰度: 使用"灰度转换"功能
    • 调整亮度/对比度: 使用相应的滑块控制
    • 图像缩放: 输入目标尺寸并点击"缩放"
  3. 保存结果: 处理完成后,点击"下载"按钮保存处理后的图像

功能模块说明

ImageIO类

  • 负责图像的读取、保存和显示
  • 支持多种图像格式

ColorProcessing类

  • 提供各种颜色处理功能
  • 支持自定义参数调整

Compression类

  • 实现图像数据的压缩存储
  • 基于三元组结构的压缩算法

ImageScaling类

  • 实现图像尺寸调整功能
  • 支持不同的插值方法

WebServer类

  • 提供Web服务接口
  • 处理客户端请求和图像处理命令

项目优势

  1. 模块化设计: 代码结构清晰,各功能模块独立
  2. 易于扩展: 可以方便地添加新的图像处理功能
  3. 友好界面: Web界面直观易用
  4. 跨平台: 支持Windows、Linux等多种操作系统

许可证

本项目仅供学习使用,基于课程要求开发。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors