图像处理

C# 中Bitmap图像处理含增强对比度的三种方法

二次信任 提交于 2020-08-04 14:31:41
Bitmap类 Bitmap对象封装了GDI+中的一个位图,此位图由图形图像及其属性的像素数据组成.因此Bitmap是用于处理由像素数据定义的图像的对象.该类的主要方法和属性如下: 1. GetPixel方法和SetPixel方法:获取和设置一个图像的指定像素的颜色. 2. PixelFormat属性:返回图像的像素格式. 3. Palette属性:获取和设置图像所使用的颜色调色板. 4. Height Width属性:返回图像的高度和宽度. 5. LockBits方法和UnlockBits方法:分别锁定和解锁系统内存中的位图像素.在基于像素点的图像处理方法中使用LockBits和UnlockBits是一个很好的方式,这两种方法可以使我们指定像素的范围来控制位图的任意一部分,从而消除了通过循环对位图的像素逐个进行处理,每调用LockBits之后都应该调用一次UnlockBits. BitmapData类 BitmapData对象指定了位图的属性 1. Height属性:被锁定位图的高度. 2. Width属性:被锁定位图的宽度. 3. PixelFormat属性:数据的实际像素格式. 4. Scan0属性:被锁定数组的首字节地址,如果整个图像被锁定,则是图像的第一个字节地址. 5. Stride属性:步幅,也称为扫描宽度. 这里要重点说说Stride属性

CV基础:秒懂傅里叶变换

孤者浪人 提交于 2020-08-04 13:44:52
有些图片显示不出来,建议在知乎链接中看本文: https://zhuanlan.zhihu.com/p/47250417 <前言> 傅里叶分析之掐死教程,我看了,说实话我觉得有点绕,如果没学过傅里叶变换我觉得不可能看一遍就懂,估计会卡死很久。尤其是那些矢量图和大海螺旋图,让我一脸懵逼,怀疑自己没学过傅里叶变换。 仔细一想,作者说“要让读者在不看任何数学公式的情况下理解傅里叶分析”。这就麻烦了,数学语言简洁直接,要最快理解显然应该不应该走这条路,而应该先把相关的数学知识搞清楚到能理解傅里叶变换的程度。 当然像作者这样去讲述也是很棒的(尤其是我引用的那张图,很清晰),但是我总觉得这样会使已经有一点数学基础的人看的更晕,没有数学基础的同学也不可能很快理解。 </前言> <正文> 我们可以将任意信号强度随时间变化的规律写成函数F(X)中,x表示时间。 任意信号往往非常复杂毫无规律,难以用数学式表示,于是我们希望将函数F(X)分解为几个简单的函数相加的形式,分解如下表示: 我们自然希望找到一种分解(选择一种合适的基底函数),能够很方便地求出系数C_N。数学家告诉我们三角函数,复指数函数正是合适的基底函数。 利用三角函数系或复指数函数系展开的函数级数被称为傅立叶级数。 周期为Ť的函数F(X)傅里叶级数展开如下: 数学家(知道我们不会算)同时告诉了我们系数: 式中a_n,b_n是傅立叶系数

学习周记1:2019.2.18-2019.2.24

末鹿安然 提交于 2020-08-04 12:28:39
前言 这学期几乎全是硬核的算法/程序课,为了督促自己认真学习,我将每周写一篇周记。周记模板前一周保留,当周每日更新当日笔记。如有整段文字代码适合另起blog,也将链接标在周记对应的日期下。 课程: 算法设计与分析 、数字图像处理、 程序设计实习 、 游戏AI中的算法 、视觉计算与深度学习、人工智能引论及实践课(NLP)、Python程序设计与数据挖掘导论、 大数据分析中的算法 2019.2.18 课程: 大数据分析中的算法 、 算法设计与分析 、 游戏AI中的算法 日记: 大数据似乎默认我们已经有相当的机器学习相关数学知识,应当尽快补上 吴恩达的机器学习课程 。 算分看上去不是太难,虽然数算我学的是B,但应该没有太大问题,一边上算分一遍补 数算A慕课 吧。 游戏AI第一节课涉及极大极小,alpha-beta剪枝,蒙特卡罗,看样子是默认我们知道这些内容的,今天就要补上。 算法设计与分析课程内容 alpha-beta剪枝 http://web.cs.ucla.edu/~rosen/161/notes/alphabeta.html 这篇文章非常详细易懂! 如何学习蒙特卡罗树搜索(MCTS) https://zhuanlan.zhihu.com/p/30458774 大概看懂了MCTS的原理,代码没撸。 2019.2.19 课程: 大数据分析中的算法 日记: 今天早上浪费时间写公众号

学习周记4:2019.3.11-2019.3.17

别说谁变了你拦得住时间么 提交于 2020-08-04 12:07:02
前言 这学期几乎全是硬核的算法/程序课,为了督促自己认真学习,我将每周写一篇周记。周记模板前一周保留,当周每日更新当日笔记。如有整段文字代码适合另起blog,也将链接标在周记对应的日期下。 课程: 算法设计与分析 、数字图像处理、 程序设计实习 、 游戏AI中的算法 、视觉计算与深度学习、人工智能引论及实践课(NLP)、Python程序设计与数据挖掘导论、计算机图形学 2019.3.11 课程: 算法设计与分析 、 游戏AI中的算法 、人工智能引论、计算机图形学 日记: 算分作业写完了。 2019.3.12 课程:无 日记: 早上起得很迟,下午有点烦躁,OJ做不出来,基本没做什么。晚上去听了学而思的招聘专场,本来我以为是好未来的招聘,没想到仅仅局限于学而思,而且现场基本就是招聘讲师。 听了双师课堂的介绍,比想象中要更加有意思一点点。记录一段给认识的在好未来工作的学长的话。 今晚还是比较有收获的,更直观地了解了一下双师课堂,比过去理解的要更加“科技加持”一点。没想到学而思对学习数据的搜集已经做到这个程度了,还是挺兴奋的。 我一直认为,游戏化、互动、激励之类略微有点“华而不一定实”的东西不是“目的”而是“工具”,我在一块的态度一直是比较保守的,我对教育技术很感兴趣,但是对这些东西是否能够真正提高学习效率/兴趣存疑。(不是看上去高大上就是好的有效的,技术的应用常常会本末倒置

2019年春季学期:学习资料汇总

☆樱花仙子☆ 提交于 2020-08-04 10:05:08
算法设计与分析 教材 算法设计与分析 第2版 屈婉玲 清华大学出版社 数字图像处理 教材 冈萨雷斯-数字图像处理(MATLAB版)(第二版) 冈萨雷斯-数字图像处理(第三版) 不太喜欢第三版...数学偏多,基础部分比较啰嗦。 MATLAB 图像处理工具箱 https://ww2.mathworks.cn/products/image.html 程序设计实习 刷题 OpenJudge http://cxsjsxmooc.openjudge.cn/2019t3springall/ POJ http://poj.org/problemlist 游戏AI中的算法 大作业平台/环境 Botzone-国标麻将 https://www.botzone.org.cn/ 星际争霸2-配置教程 https://zhuanlan.zhihu.com/p/28471863 星际争霸2-官方教程 https://github.com/deepmind/pysc2 视觉计算与深度学习 自学入门 官网60分钟入门pytorch教程(需要numpy基础) https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html FINETUNING 图像分类模型样例 https://pytorch.org/tutorials/beginner

基于GPUImage如何实现实时美颜滤镜

こ雲淡風輕ζ 提交于 2020-07-29 10:45:06
今天将主要介绍基于 GPUImage 实现美颜滤镜的原理和思路。图玩智能科技为企业提供更稳定更优质的美颜产品及服务,欢迎咨询 www.toivan.com GPUImage GPUImage 是一个开源的基于GPU的图片或视频的处理框架,其本身内置了多达120多种常见的滤镜效果。有了它,添加实时的滤镜只需要简单地添加几行代码。下面的例子是以摄像头的数据为源,对其实时地进行反色的操作(类似相片底片的效果): 利用 GPUImage 对摄像头数据添加滤镜的示例 2.1 其实美颜也是一样,如果有这么一个美颜的滤镜(姑且叫做GPUImageBeautifyFilter),那么只需要把示例2.1中的GPUImageColorInvertFilter替换成GPUImageBeautifyFilter即可。我们只需要做一个GPUImageBeautifyFilter就能实现实时美颜了,问题来了,到底什么算是美颜呢?我的理解是,大家对于美颜比较常见的需求就是磨皮、美白。当然提高饱和度、提亮之类的就根据需求而定。本文将着重介绍磨皮的实现(实际上GPUImageBeautifyFilter也实现了美白、提亮等效果)。 磨皮 磨皮的本质实际上是模糊。而在图像处理领域,模糊就是将像素点的取值与周边的像素点取值相关联。而我们常见的 高斯模糊 ,它的像素点取值则是由周边像素点求加权平均所得

计算机视觉学习之路(目录)------你想要的都在这里了

╄→尐↘猪︶ㄣ 提交于 2020-07-29 08:58:18
计算机视觉学习之路------你想要的都在这里了 (根据自己的学习进度后期不断更新哟!!!) 一、OpenCV+TensorFlow入门人工智能图像处理基础 1.anaconda一站式环境的搭建(anaconda、tensorflow、opencv) 2.两个问题解答、opencv、tensorflow、numpy、matplotlib的基本使用 3.图像处理之几何变换 二、OpenCV学习 三、TensorFlow学习 四、Numpy学习 五、matplotlib学习 持续更新中。。。。。。 来源: oschina 链接: https://my.oschina.net/u/4329429/blog/4438869

CMA连续物理内存用户空间映射

和自甴很熟 提交于 2020-07-29 07:13:12
背景: 在多媒体和图像处理等应用中,经经常使用到大块内存,尤其是硬件编解码。须要内核分配大块的物理连续内存。 这里希望通过把从内核分配的连续物理内存映射到用户空间。在用户空间经过处理,又能够入队到驱动中。 前提: Kernel Config中 依据需求配置和调整CMA的大小。 方法: (一) 1、驱动注冊misc设备。 2、驱动实现IOCTL的内存分配,使用dma_alloc_writecombine从CMA中拿出一个内存。 3、驱动实现mmap,通过remap_pfn_range,把上面第二步dma分配到的物理内存映射到用户空间; (二) 1、用户打开设备节点/dev/cma_mem; 2、通过ioctl命令,设置须要分配的大小。 3、通过mmap映射; 測试环境: Linux-3.9.7 arm-linux-gcc 4.5.1 s5pv210 源代码: 驱动 cma_mem.c cma_mem.c #include <linux/miscdevice.h> #include <linux/platform_device.h> #include <linux/fs.h> #include <linux/file.h> #include <linux/mm.h> #include <linux/list.h> #include <linux/mutex.h> #include

计算机视觉学习之路(目录)------你想要的都在这里了

▼魔方 西西 提交于 2020-07-29 04:02:57
计算机视觉学习之路------你想要的都在这里了 (根据自己的学习进度后期不断更新哟!!!) 一、OpenCV+TensorFlow入门人工智能图像处理基础 1.anaconda一站式环境的搭建(anaconda、tensorflow、opencv) 2.两个问题解答、opencv、tensorflow、numpy、matplotlib的基本使用 3.图像处理之几何变换 二、OpenCV学习 三、TensorFlow学习 四、Numpy学习 五、matplotlib学习 持续更新中。。。。。。 来源: oschina 链接: https://my.oschina.net/u/4402060/blog/4438896