2018-11-14 17:31:23 qq_34741911 阅读数 210
  • Tensorflow-图像处理视频教程

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 课程以图像处理软件Tensorflow作为核心武器,基于图像处理热点话题进行案例实战。选择当下热门模型,使用真实数据集进行实战演示,通俗讲解整个算法模型并使用tensorflow进行实战,详解其中的原理与代码实现。

    1313 人正在学习 去看看 唐宇迪

案例一:提取图片的中心ROI区域,周围的白边去掉

解决步骤:

1.判读图片是否倾斜 ,方法:canny检测边缘,findContours 寻找轮廓,    RotatedRect minRect = minAreaRect(contours[t]);
        degree = abs(minRect.angle);判读角度是否大于0

2.如果倾斜,则进行仿射变换让图片不倾斜 ,方法:用getRotationMatrix2D,warpAffine进行仿射变换

3.获取轮廓,选择ROI区域,绘制ROI区域 Mat roiImg=src(bbox); src为原图,bbox类型为Rect,ROI区域。

案例二: 检测文档中出现的直线

1.threshold二值化图像

2.对图像进行形态学操作,只剩下直线了

3.霍夫直线检测 HoughLinesP  获取直线点的位置

4.图片上绘制直线位置

案例三:获取图片上的对象和计数

1.二值化图像

2.形态学操作

3.寻找轮廓

4.选择合适轮廓并绘制和计数

案例四:图片校正(图片呈俯视拍摄,校正为平面图)

1.二值处理

2.形态学操作

3.轮廓发现

4.绘制最外围轮廓

5.霍夫直线检测四条边

6.寻找四条边,下面寻找四条边的部分代码

int accu = min(width*0.5, height*0.5);

int deltah = 0;
    Vec4i topLine, bottomLine;
    Vec4i leftLine, rightLine;
    for (int i = 0; i < lines.size(); i++) {
        Vec4i ln = lines[i];
        deltah = abs(ln[3] - ln[1]);
        if (ln[3] < height / 2.0 && ln[1] < height / 2.0 && deltah < accu - 1) {
                topLine = lines[i];

     }
 

7.拟合四条直线方程 利用 y=kx+c的公式 直线一的代码

    float k1, c1;
    k1 = float(topLine[3] - topLine[1]) / float(topLine[2] - topLine[0]);
    c1 = topLine[1] - k1 * topLine[0];

8.寻找直线的交点    

   Point p1; // 左上角
    p1.x = static_cast<int>((c1 - c3) / (k3 - k1));
    p1.y = static_cast<int>(k1*p1.x + c1);

9.找到四个顶点进行透视变换

vector<Point2f> src_corners(4);

vector<Point2f> dst_corners(4);

getPerspectiveTransform(src_corners, dst_corners);

warpPerspective(src, resultImage, warpmatrix, resultImage.size(), INTER_LINEAR);

10.输出校正图

2016-10-25 10:33:54 haluoluo211 阅读数 2282
  • Tensorflow-图像处理视频教程

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 课程以图像处理软件Tensorflow作为核心武器,基于图像处理热点话题进行案例实战。选择当下热门模型,使用真实数据集进行实战演示,通俗讲解整个算法模型并使用tensorflow进行实战,详解其中的原理与代码实现。

    1313 人正在学习 去看看 唐宇迪
图像处理(以及机器视觉)在学校里是一个很大的研究方向,很多研究生、博士生都在导师的带领下从事着这方面的研究。另外,就工作而言,也确实有很多这方面的岗位和机会虚位以待。而且这种情势也越来越凸显。那么图像处理到底都研究哪些问题,今天我们就来谈一谈。图像处理的话题其实非常非常广,外延很深远,新的话题还在不断涌现。下面给出的12个大的方向,系我认为可以看成是基础性领域的部分,而且它们之间还互有交叉

1、图像的灰度调节
图像的灰度直方图、线性变换、非线性变换(包括对数变换、幂次变换、指数变换等)、灰度拉伸、灰度均衡、直方图规定化等等)。
例如,直方图规定化(代码请见http://blog.csdn.net/baimafujinji/article/details/41146381)


CLAHE(contrast limited adaptive histogram equalization)自适应的直方图均衡(效果图来自 http://www.cnblogs.com/Imageshop/archive/2013/04/07/3006334.html) 

2、图像的几何变换
图像的平移、图像的镜像、转置、缩放和旋转。这里面其实还包含了插值算法(这是某些几何变换所必须的),例如最邻近插值法、双线性插值法等等)
几何变换同时和图像的滤镜特效是紧密联系的,某些特效的实现本质上就是某种类型的几何变换。例如



3、图像的特效与滤镜
这方面的应用很多,你可以想想Photoshop里面的滤镜。
文献Combining Sketch and Tone for Pencil Drawing Production中给出的将自然图像变成手绘素描图的效果



例如浮雕效果


贴图太烦了,更多效果请见http://blog.csdn.net/baimafujinji/article/details/50500757
4、图像增强
内容包括图像的平滑(简单平均、中值滤波、高斯平滑等)和锐化(例如Laplace方法)等。


增强处理中的很多算法其实和图像复原中的降噪算法是重合的。现在保持边缘(或纹理结构)的平滑算法属于研究热点。像那些美颜相机里的嫩肤算法都是以此为基础的。比较常见的双边滤波(我给出的代码请见http://blog.csdn.net/baimafujinji/article/details/41598455)


基于全变分方法的TV去噪(http://blog.csdn.net/baimafujinji/article/details/42110831)、基于PM方程的非线性扩散去噪(http://blog.csdn.net/baimafujinji/article/details/42110831)等等。

5、图像复原
广义上来说——图像降噪,图像去雾,图像去模糊 都属于这个范畴
去噪实例是我用MagicHouse(http://blog.csdn.net/baimafujinji/article/details/50500757)实现的中值滤波处理椒盐噪声的效果。此外,一些基于非局部均值的降噪算法是当前研究的热点(例如BM3D、NLM等)



图像去模糊(图片取自我的《数字图像处理原理与实践(Matlab版)》)



去雾代码请见(http://blog.csdn.net/baimafujinji/article/details/30060161)或参考我的《数字图像处理原理与实践(Matlab版)》



6、图像的压缩与编码

想想BMP图像如何转换成JPG,JPG如何变成PNG?这些都属于图像压缩编码所要探讨的内容。

7、边缘检测与轮廓跟踪
边缘检测在图像处理中是一个“古老”的话题了,我就不具体给例子了。下面是一个轮廓跟踪的例子



8、图像分割
你可以认为轮廓跟踪也是实现图像分割的一种途径。
这是我在《数字图像处理原理与实践(Matlab版)》中给出的一个例子——用分水岭算法对马铃薯图像进行分割。



9、图像的形态学处理
这也属于一种非常古老的图像处理方式了。包括膨胀、腐蚀、细化、击中/击不中、开/闭运算等。但一些对颗粒状物体进行计数的应用中它仍然非常有效。



10、图像的频域变换(或称正交变换)
傅立叶、离散余弦、沃尔什-哈达玛变换、K-L(卡洛南-洛伊)变换(也称霍特林变换或PCA)、小波变换(小波变换还分很多种,例如Haar小波、Daubechies小波等等)

仅仅进行频域变换其实并没有多大意义,它往往要与具体应用相结合来发挥作用。例如进行图像压缩、嵌入数字水印、进行图像融合、进行图像降噪等等。
例如,利用PCA进行图像压缩的例子请见 http://blog.csdn.net/baimafujinji/article/details/50373143(源代码请见我的博文) 


在比如,利用小波融合对由聚焦失败导致的图像模糊进行修复 (本来左图和中图各有部分看不清,融合后变得可以辨识)源代码可见 http://blog.csdn.net/baimafujinji/article/details/49642111 


11、图像融合
广义上说融合至少包含三部分内容:像上面的基于小波的Fusion我们也认识是融合的一种,另外一种是以隐藏为目的类似嵌入式的融合,第三种是matting。matting有时反义成抠图,其实它最原本的意思就是融合。如果你理解
I = aF +(1-a)B这个融合公式的话,你应该明白我在所什么。这本质上和第二种融合原理是一样的。
狭义上,融合就是指matting。
例如 著名的Possion融合,下图右,如果直接把月亮图贴上天空,矩形边缘是很明显的,融合处理后的左图则很自然。

代码可见 http://blog.csdn.net/baimafujinji/article/details/46787837 

电影技术中常用matting方法来替换人物的场景。例如


12、图像信息安全
主要包括两个内容:1)数字水印(主要用于多媒体的版权保护);2)图像的加密(主要用于图像信息的保护)
例子是我用MagicHouse(http://blog.csdn.net/baimafujinji/article/details/50500757)实现的加密效果



注意上面我们所讨论的领域仅仅是图像处理的范畴,并不涉及机器视觉。所以也没有任何机器学习的内容,有时间我们再继续讨论这方面的东西。
2017-05-05 15:48:30 tom_8899_li 阅读数 844
  • Tensorflow-图像处理视频教程

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 课程以图像处理软件Tensorflow作为核心武器,基于图像处理热点话题进行案例实战。选择当下热门模型,使用真实数据集进行实战演示,通俗讲解整个算法模型并使用tensorflow进行实战,详解其中的原理与代码实现。

    1313 人正在学习 去看看 唐宇迪

通过摄像头图像处理案例来说明Spark流处理性能评估新方法及性能调优参数调试

1、Spark Streaming处理摄像头图像
2、Spark Streaming新的性能评估方式
3、Spark Streaming性能调优参数的使用

对于图像处理,数据肯定是在RDD中的,Receiver接收到数据后放在缓存中,然后按照特定的时间周期通过BlockManager存储数据,对于图像处理而言,数据肯定是有特定格式的,在处理的时候HOG进行特征的提取与检测等

在做这个项目的时候,我们采用了自己实现的算法来对性能进行评估,这里主要是写了一个自己的算法实现对CPU使用率的监控,并且通过调优一些参数来提升对Spark Streaming性能的优化。

假设Spark Streaming可以使用n个Core,我们设定每个Core在特定时间里使用的状态为
CPU的占用率
p=nn=1mt=1Cnt1mn

其中Cnt取值0,1

Receiver设置在2-5个比较好

Spark Streaming总共使用的Cores的总数 = receivers * BatchDuration / blockInterval

2015-02-04 14:58:26 searching555 阅读数 630
  • Tensorflow-图像处理视频教程

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 课程以图像处理软件Tensorflow作为核心武器,基于图像处理热点话题进行案例实战。选择当下热门模型,使用真实数据集进行实战演示,通俗讲解整个算法模型并使用tensorflow进行实战,详解其中的原理与代码实现。

    1313 人正在学习 去看看 唐宇迪
http://blog.sina.com.cn/s/blog_877232310100tdwk.html
2016-06-10 21:29:45 duan_zhihua 阅读数 1825
  • Tensorflow-图像处理视频教程

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 课程以图像处理软件Tensorflow作为核心武器,基于图像处理热点话题进行案例实战。选择当下热门模型,使用真实数据集进行实战演示,通俗讲解整个算法模型并使用tensorflow进行实战,详解其中的原理与代码实现。

    1313 人正在学习 去看看 唐宇迪
 第121课:  Spark Streaming性能优化:通过摄像头图像处理案例来说明Spark流处理性能评估新方法及性能调优参数测试


对于图像处理,数据肯定是在RDD中的,Receiver接受到数据后放在缓存中,然后按照特定的时间周期通过BlockManager存储数据,对于图像处理而言,数据肯定是有特定格式的,在处理的时候HOG进行特征的提取与检测等

在做这个项目的时候,我们采用了自己实现的算法来对于性能进行评估,这里主要是写了一个自己的算法实现对CPU使用率的监控,并且通过调优一些参数来提升对SparkStreaming性能的优化。

假设Spark Streaming可以使用n个Core,我们设定每个Core在特定时间里使用的状态

Spark Streaming总共使用的Cores总数 = concurrentJobs * receivers* batchDuration / blockInterval


图像处理学习之路

阅读数 15629

图像处理入门必看

阅读数 12450

没有更多推荐了,返回首页