百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

自己动手用C++写的图像处理软件(vc++图像处理程序设计)

moboyou 2025-05-09 07:13 26 浏览

说到图像处理软件你会想到什么?Photoshop?CorelDRAW?美图秀秀?还是ACDSee的图像编辑模块?

说到实现数字图像处理算法,你又会想到什么?Matlab?OpenCV?

能不能自己动手用C++写一个小型的图像处理软件,实现一些图像处理算法,而不调用任何外部的包?这个可以有!

多年以前,甚至是主页君还在读书的时候,曾经尝试在VC++ 6.0中编写了最初版本的MagicHouse(一款小型的图像处理软件)。后来当我写了我的第一本图像处理算法书时,我用VC++ 2005更新了它。再后来很长一段时间了,它就一直被压箱底了。我也开始转战Matlab了,毕竟懒惰是推动人类创新的两大动力之一,谁让Matlab那么省时省力呢。但是我们又不得不承认:首先,Matlab相比于C++,在工业应用上其实非常有限。其次,它隐藏了太多的细节,你当然不必为内存管理而操心,也无需为图像文件编解码而犯愁,但一直用Matlab的总是有种“进口加组装”的山寨感。能不能来个“完全自力更生”呢?利用这几天闲暇时间,我在Visual Studio 2013中更新了我的MagicHouse软件。(听说Visual Studio 已经出了2015,Anyway 我想应该无伤大碍)。下面就简单介绍下MagicHouse软件所提供的基本功能。

先来看看GUI先——

纯C++,没有调用任何外部包,好处是一砖一瓦完全自我打造,坏处是我不能保证所有算法的效率都最优。目前该软件仍然只支持BMPJPG两种格式(自己写编码函数的孩纸伤不起啊)。在浏览模式中程序提供了包括十种图片载入的方式:向下扫描、双重扫描、右侧飞入、双侧飞入、垂直百叶窗、水平百叶窗、垂直栅条、水平栅条、方格效果、落雨效果。下面是一些效果图——

下面是软件中实现了的部分图像处理算法演示:

图像的几何变换之旋转(双线性差值算法)→

图像的灰度变换之指数变换

图像滤镜之马赛克化→

图像滤镜之水雾效果(复合方向)→

图像滤镜之彩色钢笔效果

图像分析之种子填充算法→

正交变换之快速傅立叶变换

正交变换之图像小波分解(二层)→

多区域轮廓跟踪算法

图像分割之分水岭算法→

高级图像增强处理之保护纹理的降噪算法:基于PM方程的非线性扩散滤波→

高级图像增强处理之保护纹理的降噪算法:基于全变分的TV降噪算法→

图像加密算法之 基于Hilbert曲线的图像置乱加密(中图),以及基于Cat映射的图像置乱加密(右图)→

什么都看不到,要的就是这种效果:)

基于混沌图像融合的密图隐藏算法→

下面的左图是隐藏处理后的密图(注意为了让读者看清楚里面隐藏了一幅图像,我特意调整参数让它显现出来,事实上是可以做到完全隐藏的,那样图像就会和原模板图像看起来完全一致了)。右图是解密后复原的图像。

基于形态学方法的图像处理之彩色图像的膨胀→

以上列出的仅仅是软件中提供的部分功能,限于篇幅,这里就不逐一列出了,日后有时间我也会继续完善软件、实现更多有趣的算法。

特别说明:Magic House 基于VC++ 2005版的源代码可以从我的图书《数字图像处理:技术详解与Visual C++实践》的配套光盘中得到。样章试读:
http://wenku.it168.com/d_001417193.shtml

VS 2013版还在调测中,现在暂时无法提供。(稍后我会提供试用版程序下载链接~)

相关推荐

【开源推荐】给大家推荐个基于ChatGPT的PHP开发库 openai-php-api

有了这个库大家就可以愉快的使用PHP对接chatGPT的官方接口了,至于对接了官方接口想要做什么就看你自己的啦环境要求PHP7.4或以上composer1.6.5以上支持框架Laravel、Sym...

PHP使用Phar打包控制台程序

1.介绍1.1介绍php脚本有着非常强大的库支持,可以轻松做出特别强大的程序。php不仅仅可以搭建各种各样的网站系统、平台系统,还可以开发基于控制台运行的程序。不过使用php开发的控制台程序在使用...

PHP实现URL编码、Base64编码、MD5编码的方法

1.介绍1.1介绍今天开始福哥要给大家讲解关于字符编码的知识,所谓字符编码就是将一个字符串或者是一个二进制字节数组里面的每一个字符根据一定的规则替换成一个或者多个其他字符的过程。字符编码的意义有很...

雷卯针对易百纳海思Hi3521D开发板防雷防静电方案

一、应用场景1、医疗电子2、安防监控3、数字标牌4、视频广告5、环境监测二、功能概述1CPU:ARMCortexA7双核@Max.1.3GHz2H.265/H.264&JPEG多码流编...

不折腾无人生-安卓盒子安装Linux系统armbian纪实

不折腾无人生-安卓盒子安装Linux系统armbian纪实小编的x96max+(晶晨Amlogics905x3)安卓盒子已安装二个系统,原装安卓9.0和tf卡上的CoreELEC9.2.3,可玩性...

全网最简单的玩客云刷casaos方法及后续使用心得

本内容来源于@什么值得买APP,观点仅代表作者本人|作者:不鸣de前几天在站内看见很多值友分享了玩客云刷casaos,被简洁的操作界面种草,于是我将之前刷了powersee大神网页导航版armbia...

最新评测:英特尔旗舰 Alder Lake 处理器击败苹果M1 Max

据国外媒体tomshardware报道,英特尔最新的酷睿i9-12900HK处理器刚刚赢得了移动x86与Arm的性能大战,但这是有代价的。这款移动14核AlderLake芯片在多个工作负...

创维酷开Max系列电视开启ADB并安装第三方应用教程

前言创维酷开系列智能电视采用的是相对封闭的系统,虽然设置中提供了安装未知应用的选项,但由于电视安装位置的限制,往往难以直接使用USB接口安装应用。本文将详细介绍如何通过ADB方式在创维酷开Max系列电...

苹果 Mac Studio,再次刷新我们对个人电脑的认知

由两块M1Max组成的M1Ultra,成为了M1系列的最后一块拼图,并完成了整个M1SoC宇宙。这就好像《复仇者联盟4:终局之战》对于漫威第一阶段,十几年勤恳的布局,最终达到顶峰...

「必买」盘点2021年男人们的败家清单,越“败”越香

心里总想买点啥?看看《必买》,全网最有料的场景种草指南。草原割不尽,春风吹又生。在过去的2021年,不断被各种数码产品种草,一直在买买买,剁手不停。大部分产品都经过详细的对比做足了功课,也有部分是一时...

Opus音频编解码在arm上的移植

一、简介现在有个需求,在局域网内实现实时语音,传输层协议使用UDP协议,如果直接使用ALSA进行录制音频流并发送到另一端进行播放,音质会非常差,而且断断续续,原因如下:采样频率:fm=44.1K...

N ARM MINI空气减震系统臂体安装指南及应用说明

距离MOVMAX移动大师NARMMINI发布已经过去一段时间了,不少收到NARMMINI的小伙伴也已经迅速将产品投入到自己的车拍工作中去了。而在实际工作过程中我们也收到了用户的部分疑问和反馈:...

搜索引擎中的性能怪兽,Elasticsearch挑战者之Manticore Search

ManticoreSearch简介ManticoreSearch是一个使用C++开发的高性能搜索引擎,创建于2017年,其前身是SphinxSearch。ManticoreSe...

10个运维拿来就用的 Shell 脚本,用了才知道有多爽

1、监控MySQL主从同步状态是否异常脚本#!/bin/bashHOST=localhostUSER=rootPASSWD=123.comIO_SQL_STATUS=$(mysql-h$...

PHP7.0.0正式版开放下载:速度大提升

IT之家讯PHP发布经理AnatolBelski在GitHub发布了PHP7.0.0正式版,该版本在速度提升上面有非常大的进步,比5.6版本提速两倍,已经接近Facebook开发的PHP执行引擎...