使用MFC在VS2013编写的数字图象处理软件,能够实现相当强大的功能。
BMP格式读取保存DFTFFT直方图色调均化缩放模糊锐化滤镜形态学处理曲线裁剪灰度图彩色图自动阈值等等...除此之外还有很多其他小功能...建议使用VS2013打开!!!核心代码在Bmp.cpp中!!!更新文档:2014年6月18日更新说明:这次应该是上交的最后一次作业了,在今日的展示结束之后总体情况还好,但是发现了几个问题。
首先是这个程序是在win8环境下设计的,所以程序的一些大小参数以及按钮图片的位置参数是适合在win8的环境下操作,在设计报告中使用的操作系统也是win8。
而如果将该程序移动至win7系统上操作的话可以在大小与位置上会出现一些偏差,所以推荐将该程序在win8系统下运行,如果没有win8系统但是想重装的话可以找我。
然后本次更新的内容就是对设计报告中的要求的一些补充,比如图片的裁剪功能,还有一些照旧的BUG修复了。
关于这个裁剪功能,在程序中的图像裁剪中有一个说明按钮,在设计报告中有提到怎么使用的,所以在这里就不一一说明了,其实就跟在PS上用裁剪差不多,很容易用的。
关于设计的感想也写在了设计报告上了--,这里也就不多说了。
好了这个程序算是最终完成了,撒花!师姐辛苦了~!!!!!================================================================================================================================================================2014年5月13日更新说明:这次的更新比较少,主要就是自动阈值分割图像方面的更新。
实现该操作的函数依然放在Bmp.cpp里面,里面一共使用了三种方式来决定自动阈值。
其中一种是“大津法”,函数是“OtsuThreshold”,该函数最后会返回一个阈值,该阈值就是大津法得出的阈值,具体实现方式可以在cpp文件中查看。
还有一种方法就是“迭代法”,函数是“IterationThreshold”,该函数最后会返回一个阈值,该阈值就是迭代法得出的阈值,具体实现方式可以在cpp文件中查看。
前两种方法的实现方法都如老师在PPT上所说的一样,而且运算起来非常快,基本可以说是瞬时得出。
而第三种方法是我自己写的一个方法,叫做“对半分”法,函数是“HalfCutThreshold”,该函数最后会返回一个阈值,该阈值就是对半分得出的阈值,具体实现方式可以在cpp文件中查看。
其原理就是计算出一个阈值,使到阈值处理后图片的黑色像素与白色像素的数量相等或者最接近,也就是把图片按黑白像素对半分的方法来对图像进行分割。
关于程序的使用方法,可以在鼠标右键菜单中选择“调整”->“阈值”->“高级阈值”来打开高级阈值处理的对话框。
打开对话框后,默认为最直接的自己首选阈值的方法,可以通过鼠标的左键拖动直方图中的绿色竖线来调整需要设定的阈值大小,同时右边会有该图片的预览,可以很方便操作。
如果需要使用自动阈值分割,可以在阈值方式中更改,一旦选择了“直接阈值”以外的阈值方式,程序便会自动用所选择的方法帮你计算出一个阈值,同时在直方图上会显示出该阈值的位置,还有该阈值的大小,同时预览图片也会立即更新。
值得注意的是,当你选择了自动阈值的时候,你不能再通过鼠标左键在直方图上手动调整阈值大小了哦,这个时候你只需要将阈值方式调回“直接阈值”即可重新自己调整!除了有关作业的更新之外,这次更新还调整了图片备份的内存优化,加上了使用磁盘作为备份的空间,不过这些作为使用者的话是不需要怎么注意的嗯嗯,尽情使用即可!最后,再次谢谢师姐能够读完这个文档,如果还有什么问题的话就联系我吧,联系方式就在软件中了欢迎点击--,谢谢!================================================================================================================================================================2014年5月6日更新说明:这次的主要更新是形态学处理的部分,也就是膨胀、腐蚀、开与闭操作。
实现函数依然是放在Bmp.cpp这个文件里面。
名字为Morphology的函数就是该形态学操作的函数。
可以通过在函数中调入不同的参数与设置使到一个函数同时实现膨胀与腐蚀的功能,而开与闭的功能只需要连续调用两次函数,并且参数不同就行了,使用非常简单。
然后就是软件的使用部分,
1
可作为PWM控制,的输出发生器占空比可调
2024/1/25 18:27:18 22KB labVIEW
1
SpringbootController中使用service调SQL语句的方法,动态获取数据库信息添加到WORD表格中,检查到的数据绘制为柱形图(直方图)添加到文档中,并生成word(含表格,柱状图)存储到本地,在浏览器下载本地的word文档
2024/1/25 16:24:38 19KB word下载
1
stm32多串口同时工作的工程,现在已经调通串口123能同时工作互不干扰,传输使用了DMA基于原子的例程修改,感谢原作者提供的例程printf函数直接发送数据三个串口都能使用
2024/1/24 8:58:21 3.45MB stm32 多串口 DMA
1
数控机床装调与技改大赛中试切件的加工优化.pdf
2024/1/24 7:28:45 1.55MB eee技术
1
功能全部实现;
误差很小;
利用51单片机IO口作输出,通过定时器的周期性中断输出一个占空比可调、频率可调的简易方波信号发生器,具体要求如下:1、完成频率范围为0.1Hz~5KHz的方波发生器,要求如下:(1)占空比5%~95%连续可调;
(2)可键盘输入信号发生的频率。
2、可完成脉宽范围为100μs~1s的脉冲信号发生器,要求如下:(1)可键盘输入发生脉冲宽度;
(2)每按一次触发键,可发出一个单脉冲。
3、根据已经描述的C语言控制程序,运用Proteus画出硬件连接图,并将运用C语言描述的程序下载到Proteus虚拟单片机中,在Proteus中实现“简易方波信号发生器”的各项功能。
1
包含红外线遥控,超声波避障,PID调速等多种功能,源码都有,F103zet6可以直接使用
2024/1/21 10:56:04 6.4MB 4WD小车
1
本程序采用16QAM调制方式,对一串2进制信源进行调制,用升余弦滚降函数进行基带调制,再调到高频信道;
在信道上加入高斯白噪声,运用匹配滤波器解调,画出解调星座图,运用最小欧氏距离译码判决,计算误比特率。
2024/1/20 11:34:27 105KB QAM 采样 星座图 编码
1
大学生科技制作项目(含原理图、PCB、源代码、Proteus仿真文件、功能说明)使用说明:1. 功能按键说明:S1为功能选择按键,S2为功能扩展按键,S3为数值加一按键。
2. 功能及操作说明:操作时,连续短时间(小于1秒)按动S1,即可在以上的6个功能中连续循环。
中途如果长按(大于2秒)S1,则立回到时钟功能的状态,1, 时钟功能:上电后及显示10:10:00,寓意十全十美。
2, 校时功能:短按一次S1,即当前时间和冒号为闪烁状态,按动S2则小时位加1,按动S3则分钟位加1,秒表不可调。
3, 闹钟功能:短按二次S1,显示状态为22:10:00.冒号为长亮。
按动S2刚小时位加1,按动S3则分钟位加1,秒时不可调。
当按动小时位超过23时则会显示--:--:--,这个表示关闭闹钟功能。
闹钟声为蜂鸣器长鸣3秒钟。
4, 倒计时功能:短按三次S1,显示状态为0.冒号为长灭。
按动S2则从低位依次显示高位,按动S3则相应位加1,当S2按到第6次时会是所设定的时间状态下开始倒计时,再次按动S2将再次进入调整功能,并且停止倒计时。
5, 秒表功能:短按四次S1,显示状态为00:00:00.冒号为长亮。
按动S2则开始秒表计时,再次按动S2则停止计时,当停止计时的时候按动S3则秒表清零。
6, 计数器功能:短按五次S1,显示状态为00:00:00。
冒号为长灭,按动S2则计数器加1.按动S3则计数器清零。
2024/1/20 0:48:52 152KB 时钟
1
AntTweakBar.zipAntTweakBar是一个小和易于使用的C/c++库,允许程序员快速光和直观的图形用户界面添加到图形应用程序基于onOpenGL(兼容性和核心配置文件),举举9日10或11举屏幕交互地调整参数。
C/c++变量可以绑定到图形控件允许用户修改它们。
因此,变量的程序员可以很容易地修改。
他们显示的图形应用程序通过一个或多个嵌入式windows称为调整酒吧。
AntTweakBar图书馆主要目标图形应用程序,需要一个快速的方法来调优参数(即使在全屏模式)和看到的结果实时3d演示、游戏、原型、内联编辑,调试设施更为重要的图形应用程序,等等。
2024/1/20 0:49:16 4.28MB AntTweakBar
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡