2010-10-23 16:07:00 mpzsw 阅读数 25081

我根据《数字图像处理的就业前景》和自己找工作的一些经验简单介绍一下图像处理方向就业前景,希望能对后来者有所帮助!

01、请学好图像基本理论知识,笔试会遇到很多基础的题;

02、请学好c++语言,99%以上的公司在招图像岗位的人员时都会笔试c++;

03、请多做一些实际的项目,少一些理论的研究(针对中小企业而言);

04、请不要只局限于的课题,因为可能你的课题只是图像处理领域的一些皮毛;

05、请多了解一些相关的前沿知识;

06、请不要迷信自己的算法,比如BP神经网络(可能理论研究时用的很多,可是实际呢?)

07、请尽量与企业的相关人士探讨该领域的问题,那样的收获比书本大很多;

附:北京相关图像的公司
外企:

01、东芝(中国)有限公司 研究开发中心开发部
02、通用电气(GE)医疗集团
03、微软
04、SONY
05、凌阳
06、理光软件研究所(北京)
07、富士通研究开发中心有限公司
08、三星电子中国通信研究院
09、NEC中国研究院
10、研发系统
11、德加拉北京办事处
12、适普软件
13、松下
14、佳能信息技术(北京)有限公司
15、ITS(中国)有限公司
大型企业:
01、海湾控股集团有限公司
02、腾讯研究院招
03、北大方正
04、清华同方
05、北京方正国际
06、卓望集团
07、迪瑞集团(北京)研发中心
08、汉王科技股份有限公司
09、威视股份
事业单位:
01、中国核工业集团公司
02、船舶系统工程部
03、中科院软件所二部
04、中国科学院软件研究所
05、中科院自动化所
06、中国兵器工业第二〇八研究所
07、中国航天科技集团公司
08、中国航天科技集团公司第五研究院
09、综合信息系统技术国家级重点实验室
10、国家农业信息化工程技术研究中心
11、中国航天科工集团公司飞航技术研究院
12、铁道部信息技术中心
13、中国航天科工集团第二研究院第二〇七所
14、中国科学院生物物理研究所
15、中国电子科技集团公司第三研究所
16、中国船舶信息中心
17、航天科工卫星技术有限公司
18、中科院电子所
19、中国科学院计算技术研究所
20、中国安全生产科学研究院
21、中国航天时代电子公司光纤惯导项目分公司
22、中国计量科学研究院
23、公安部第一研究所
24、中国印钞造币总公司
中小企业:
01、北京中自邦柯科技有限公司
02、北京锦恒佳晖汽车电子系统有限公司
03、长峰科技工业集团公司
04、北京京天威科技发展有限公司招聘职位
05、北京优纳科技有限公司
06、北京深拓科技有限公司
07、永鑫宇恒信息技术
08、北京蓝卡软件技术有限公司
09、中盛信合(北京)科技有限公司
10、北京赛尔蒂扶科技有限公司
11、北达万坤(北京)科技发展有限公司
12、北京思比科微电子技术有限公司
13、北京德韶数码技术有限公司
14、北京天远三维科技有限公司
15、航天星图科技(北京)有限公司
16、北京友通
17、北京中盾安民分析技术有限公司
18、北京文安科技发展有限公司
19、北京华生恒业科技有限公司
20、北京经纬恒润科技有限责任公司
21、北京伟景行数字城市科技有限公司招聘
22、北京极明源科技有限公司
23、北京优立慧科信息技术有限公司
24、北京华旗资讯数码科技有限公司
25、北京新航智科技有限公司
26、银河动力
27、北京普赛科技有限公司
28、北京德鑫泉科技发展有限公司
29、北京嘉恒中自图像技术有限公司
30、优加利信息科技(北京)技术中心
31、北京天诚盛业科技有限公司
32、北京华胜天成有限公司
33、北京威速科技有限公司
34、深圳市蓝韵实业有限公司(北京)
35、北京维深科技发展有限责任公司
36、重庆金山科技(集团)有限公司(北京)
37、创新科技(中国)有限公司北京分公司
38、北京思创贯宇科技开发有限公司
39、明锐标图
40、中钞长城金融设备控股有限公司
41、北京文安视觉科技有限公司
42、北京东方红海科技发展有限公司
43、北京普赛科技有限公司
44、北京昂天科技有限公司
45、中国东方红卫星股份有限公司
46、北京长江源科技有限公司
47、北京海鑫科金高科技股份有限公司
48、北京瑞斯康达科技发展有限公司
49、厚德新视
50、北京嘉恒中自图像技术有限公司
51、北京科天健图像技术有限公司
52、大恒图像
53、凌云光子技术集团
54、微视凌志
55、北京微视新纪元科技有限公司
56、银河传媒
57、太阳驹(北京)科技发展有限公司
58、北京道达天际软件技术有限公司
59、北京航星永志科技有限公司
60、北京创新未来科技有限公司
61、北京吉威数码信息技术有限公司
62、神形互联(北京)科技有限公司
63、智安邦科技
64、北京亚邦伟业技术有限公司
65、北京顶亮科技有限公司
66、北京华星世联科技有限公司
67、北京昂天科技有限公司
68、北京多维视通技术有限公司
69、同方知网技术产业集团
70、北京天诚盛业科技有限公司
71、欢乐网北京研发中心
72、德众通科技发展(北京)有限公司
73、北京中远通科技有限公司
74、北京山海经纬信息技术有限公司
75、北京德威同致科技有限公司
76、航天量子数码科技(北京)有限公司
77、北京超图地理信息技术有限公司
78、北京中科软件有限公司
79、北京源德生物医学工程有限公司
80、北京思比科微电子技术有限公司
81、北京融信博通科技发展有限公司
82、北京盛赞科技有限公司_
83、北京普赛科技有限公司
84、北京文通信息技术有限公司
85、万盛(中国)科技有限公司
86、北京康拓红外技术有限公司

2016-06-08 10:40:44 sinat_34707539 阅读数 2070

我根据《浅谈图像处理方向的就业前景》和自己找工作的一些经验简单介绍一下图像处理方向就业前景,
希望能对后来者有所帮助!

1、请学好图像基本理论知识,笔试会遇到很多基础的题;
2
、请学好c++语言,99%以上的公司在招图像岗位的人员时都会笔试c++
3
、请多做一些实际的项目,少一些理论的研究(针对中小企业而言);
4
、请不要只局限于的课题,因为可能你的课题只是图像处理领域的一些皮毛;
5
、请多了解一些相关的前沿知识;
6
、请不要迷信自己的算法,比如BP神经网络(可能理论研究时用的很多,可是实际呢?)
7
、请尽量与企业的相关人士探讨该领域的问题,那样的收获比书本大很多;


附:北京相关图像的公司

外企:

01东芝(中国)有限公司 研究开发中心开发部
02
通用电气(GE)医疗集团
03
微软
04
SONY
05
凌阳
06
理光软件研究所(北京)
07
富士通研究开发中心有限公司
08
三星电子中国通信研究院
09
NEC中国研究院
10
研发系统
11
德加拉北京办事处
12
适普软件
13
松下
14
佳能信息技术(北京)有限公司
15
ITS(中国)有限公司
大型企业:
01
海湾控股集团有限公司
02
腾讯研究院招
03
北大方正
04
清华同方
05
北京方正国际
06
卓望集团
07
迪瑞集团(北京)研发中心
08
汉王科技股份有限公司
09
威视股份

事业单位:

01中国核工业集团公司
02
船舶系统工程部
03
中科院软件所二部
04
中国科学院软件研究所
05
中科院自动化所
06
中国兵器工业第二八研究所
07
中国航天科技集团公司
08
中国航天科技集团公司第五研究院
09
综合信息系统技术国家级重点实验室
10
国家农业信息化工程技术研究中心
11
中国航天科工集团公司飞航技术研究院
12
铁道部信息技术中心
13
中国航天科工集团第二研究院第二七所
14
中国科学院生物物理研究所
15
中国电子科技集团公司第三研究所
16
中国船舶信息中心
17
航天科工卫星技术有限公司
18
中科院电子所
19
中国科学院计算技术研究所
20
中国安全生产科学研究院
21
中国航天时代电子公司光纤惯导项目分公司
22
中国计量科学研究院
23
公安部第一研究所
24
中国印钞造币总公司

中小企业:

01北京中自邦柯科技有限公司
02
北京锦恒佳晖汽车电子系统有限公司
03
长峰科技工业集团公司
04
北京京天威科技发展有限公司招聘职位
05
北京优纳科技有限公司
06
北京深拓科技有限公司
07
永鑫宇恒信息技术
08
北京蓝卡软件技术有限公司
09
中盛信合(北京)科技有限公司
10
北京赛尔蒂扶科技有限公司
11
北达万坤(北京)科技发展有限公司
12
北京思比科微电子技术有限公司
13
北京德韶数码技术有限公司
14
北京天远三维科技有限公司
15
航天星图科技(北京)有限公司
16
北京友通
17
北京中盾安民分析技术有限公司
18
北京文安科技发展有限公司
19
北京华生恒业科技有限公司
20
北京经纬恒润科技有限责任公司
21
北京伟景行数字城市科技有限公司招聘
22
北京极明源科技有限公司
23
北京优立慧科信息技术有限公司
24
北京华旗资讯数码科技有限公司
25
北京新航智科技有限公司
26
银河动力
27
北京普赛科技有限公司
28
北京德鑫泉科技发展有限公司
29
北京嘉恒中自图像技术有限公司
30
优加利信息科技(北京)技术中心
31
北京天诚盛业科技有限公司
32
北京华胜天成有限公司
33
北京威速科技有限公司
34
深圳市蓝韵实业有限公司(北京)
35
北京维深科技发展有限责任公司
36
重庆金山科技(集团)有限公司(北京)
37
创新科技(中国)有限公司北京分公司
38
北京思创贯宇科技开发有限公司
39
明锐标图
40
中钞长城金融设备控股有限公司
41
北京文安视觉科技有限公司
42
北京东方红海科技发展有限公司
43
北京普赛科技有限公司
44
北京昂天科技有限公司
45
中国东方红卫星股份有限公司
46
北京长江源科技有限公司
47
北京海鑫科金高科技股份有限公司
48
北京瑞斯康达科技发展有限公司
49
厚德新视
50
北京嘉恒中自图像技术有限公司
51
北京科天健图像技术有限公司
52
大恒图像
53
凌云光子技术集团
54
微视凌志
55
北京微视新纪元科技有限公司
56
银河传媒
57
太阳驹(北京)科技发展有限公司
58
北京道达天际软件技术有限公司
59
北京航星永志科技有限公司
60
北京创新未来科技有限公司
61
北京吉威数码信息技术有限公司
62
神形互联(北京)科技有限公司
63
智安邦科技
64
北京亚邦伟业技术有限公司
65
北京顶亮科技有限公司
66
北京华星世联科技有限公司
67
北京昂天科技有限公司
68
北京多维视通技术有限公司
69
同方知网技术产业集团
70
北京天诚盛业科技有限公司
71
欢乐网北京研发中心
72
德众通科技发展(北京)有限公司
73
北京中远通科技有限公司
74
北京山海经纬信息技术有限公司
75
北京德威同致科技有限公司
76
航天量子数码科技(北京)有限公司
77
北京超图地理信息技术有限公司
78
北京中科软件有限公司
79
北京源德生物医学工程有限公司
80
北京思比科微电子技术有限公司
81
北京融信博通科技发展有限公司
82
北京盛赞科技有限公司_
83
北京普赛科技有限公司
84
北京文通信息技术有限公司
85
万盛(中国)科技有限公司
86
北京康拓红外技术有限公司

2013-06-22 10:19:46 mao_kun 阅读数 1104

我根据《浅谈图像处理方向的就业前景》和自己找工作的一些经验简单介绍一下图像处理方向就业前景,希望能对后来者有所帮助!
1、请学好图像基本理论知识,笔试会遇到很多基础的题;
2、请学好c++语言,99%以上的公司在招图像岗位的人员时都会笔试c++;
3、请多做一些实际的项目,少一些理论的研究(针对中小企业而言);
4、请不要只局限于的课题,因为可能你的课题只是图像处理领域的一些皮毛;
5、请多了解一些相关的前沿知识;
6、请不要迷信自己的算法,比如BP神经网络(可能理论研究时用的很多,可是实际呢?)
7、请尽量与企业的相关人士探讨该领域的问题,那样的收获比书本大很多;

附:北京相关图像的公司

外企:
01、  东芝(中国)有限公司 研究开发中心开发部 
02、  通用电气(GE)医疗集团
03、  微软

04、  SONY
05、  凌阳
06、  理光软件研究所(北京) 
07、  富士通研究开发中心有限公司
08、  三星电子中国通信研究院
09、  NEC中国研究院
10、  研发系统
11、  德加拉北京办事处
12、  适普软件
13、  松下
14、  佳能信息技术(北京)有限公司
15、  ITS(中国)有限公司
大型企业:
01、  海湾控股集团有限公司 
02、  腾讯研究院招
03、  北大方正
04、  清华同方
05、  北京方正国际
06、  卓望集团
07、  迪瑞集团(北京)研发中心
08、  汉王科技股份有限公司
09、  威视股份
事业单位:
01、  中国核工业集团公司
02、  船舶系统工程部
03、  中科院软件所二部
04、  中国科学院软件研究所
05、  中科院自动化所
06、  中国兵器工业第二〇八研究所
07、  中国航天科技集团公司
08、  中国航天科技集团公司第五研究院
09、  综合信息系统技术国家级重点实验室
10、  国家农业信息化工程技术研究中心
11、  中国航天科工集团公司飞航技术研究院
12、  铁道部信息技术中心
13、  中国航天科工集团第二研究院第二〇七所
14、  中国科学院生物物理研究所
15、  中国电子科技集团公司第三研究所
16、  中国船舶信息中心
17、  航天科工卫星技术有限公司
18、  中科院电子所
19、  中国科学院计算技术研究所
20、  中国安全生产科学研究院
21、  中国航天时代电子公司光纤惯导项目分公司
22、  中国计量科学研究院
23、  公安部第一研究所
24、  中国印钞造币总公司

2019-07-03 22:23:13 SoaringLee_fighting 阅读数 868

DATE: 2019-5-29


Tags:图像处理----图像去噪和图像锐化算法系列

前言

    图像增强是图像处理和计算机视觉中的一个重要的研究课题,主要作为图像预处理或者后处理,使处理后的图像更加清晰,以便于后面的图像分析和理解。本文主要概述图像增强中的图像去噪和图像锐化方向的主要方法及不同算法的本质理解。

图像增强算法的主要方向:
1、图像去噪
2、锐化
3、低照度增强
4、去雾
5、去运动模糊
6、超分辨率重建

0、参考

图像保边滤波算法集锦系列
只(挚)爱图像处理

1、图像去噪算法方法概述
1.0、综述

综述:
Survey-of-Image-Denoising.pdf
图像去噪算法综述
图像去噪算法简介

1.1、空域方法
1.1.1、方框滤波/均值滤波

方框滤波/均值滤波

  • 本质理解:
    (1)线性局部滤波,通过邻域平均滤波,属于各向同性滤波,邻域像素点的权重都是一样的,对噪声和边缘细节区域都会同等对待,这样就导致了图像模糊。
    (2)均值滤波从频率域角度来看,相当于一个低通滤波器,因此滤波会去除高频分量,去除噪声的同时也模糊了边缘和细节部分。

  • 算法原理:
    用每个像素和它邻域像素计算出来的平均值来替换图像中的每个像素。
    均值滤波有两个参数:迭代次数和模板大小。迭代次数越多,模板尺寸越大,滤波效果越明显。

  • 优缺点:
    针对高斯噪声滤波效果较好,但存在边缘细节模糊的问题。

  • 算法复杂度:
    计算相对简单,时间复杂度:O(N^2),其中N表示图像大小,r表示邻域半径。

1.1.2、高斯滤波

高斯滤波:

  • 本质理解
    (1)邻域加权平均,相比均值滤波,多了一个高斯核函数用于衡量邻域像素点的权重,考虑邻域像素空间距离。属于各向同性滤波,对噪声和边缘细节区域都会同等对待,这样就导致了图像模糊。
    (2)高斯滤波与均值滤波一样,都是线性局部滤波,但是考虑了像素空间分布,跟目标像素越近,权重越大;跟目标像素越远,权重越小。因此相对于均值滤波,高斯滤波的平滑效果更加柔和,对边缘的保留也更好,但是仍然存在边缘细节模糊的现象。

  • 算法原理:
    每个像素和邻域像素与高斯卷积核进行相乘来替换图像中的每个像素点。
    高斯滤波的参数:模板大小核标准差。模板尺寸越大,标准差越大,滤波效果越明显。

  • 优缺点:
    考虑了像素空间分布(空间距离/空间邻近性),针对高斯噪声效果很好,但存在边缘细节模糊现象。

  • 算法复杂度:
    计算相对简单,比均值滤波复杂度要高。时间复杂度:O(N^2),其中N表示图像大小,r表示邻域半径。

  • 更多参考:
    高斯滤波c语言实现
    高斯滤波原理及C语言实现

1.1.3、中值滤波

中值滤波:

  • 本质理解:
    (1)局部非线性滤波,采用邻域像素的中值来替换目标像素点,利用了噪声点分布的特点(主要利用中值不受分布序列极大值和极小值的影响的特点,所以中值点极有可能是非噪声点),对于椒盐噪声的滤波效果很好,但是对于高斯噪声滤波效果不好,并且存在边缘模糊现象。

  • 算法原理:
    将每个像素与周围邻域像素排序之后,取中值来替换图像中的每个目标像素点。

  • 优缺点:
    对椒盐噪声滤波效果较好,但是对高斯噪声滤波效果不好。由于噪声点也可能是边缘细节区域,因此也存在边缘细节模糊的问题,导致图像模糊。

  • 算法复杂度:
    计算相对简单。

1.1.4、自适应维纳滤波
  • 本质理解:
    (1)最优线性滤波,基于最小均方误差的最优线性滤波器,这种滤波器使得滤波后的图像与原始图中之间的均方误差最小。
    (2)利用图像或噪声的统计特性,基于最小均方误差准则求解最优解。

  • 算法原理:
    基于最小均方误差的最优线性滤波器,这种滤波器使得滤波后的图像与原始图中之间的均方误差最小。

  • 优缺点:
    需要知道原始信号和噪声的统计特性,对高斯噪声滤波效果较好,对图像细节有一定的保留,但是计算复杂度很高。

  • 算法复杂度:
    时间复杂度较高。

  • 更多参考:
    LMS自适应维纳滤波器

1.1.5、双边滤波(Bilateral Filter)

详见:【CV系列】图像保边去噪算法:双边滤波算法详解及其实现

双边滤波:

  • 本质理解:
    (1)在高斯滤波的基础上增加了像素值相似性,综合考虑了像素空间相似性和亮度值相似性,采用加权平均滤波,也是属于各向同性滤波,具有一定的边缘保持效果,但是对于边缘和细节区域也会有模糊的问题。
    (2)由公式可知,像素灰度值和空间距离共同决定了最终的滤波结果。当邻域像素点与中心像素点距离越远,或者邻域像素点与中心像素点的的差值越大时,权重越小,反之,权重越大。
    (3)双边滤波本质上是将图像中相近和相似的邻域像素的加权平均值来替换目标像素点,由于考虑了像素间相似性,边缘可以较好的保持。

  • 算法原理:
    同高斯滤波一样也是采用加权平均的方式,不过权重不同, 权重如下:
    在这里插入图片描述

  • 优缺点:
    优点:(1)保边去噪(2)简单直观 (3)非迭代
    缺点:(1)复杂度较高;(2)会出现梯度失真,梯度反转,常表现为halo(光晕现象)。这是因为当一个像素点周围的相似像素很少时,其高斯加权平均是很不稳定的。如下图所示:
    在这里插入图片描述

  • 算法复杂度:
    复杂度较高,时间复杂度:O(sigma^2),其中sigma表示空域高斯核函数的标准差。

  • 更多参考:
    Bilateral Filtering: Theory and Applications
    Bilateral Filters(双边滤波算法)原理及实现
    【VS开发】【图像处理】双边滤波器bilateral filter
    图像处理之双边滤波介绍与源码实现
    o(1)复杂度之双边滤波算法的原理、流程、实现及效果。

1.1.6、非局部均值滤波(NLM)
1.1.7、导向滤波

详见: 【CV系列】图像保边去噪算法:导向滤波

1.1.8、meanshift滤波:

图像处理------Mean Shift滤波(边缘保留的低通滤波)
图像保边滤波算法集锦–MeanShift滤波算法与实现

1.1.9 加权最小二乘法的保边缘平滑滤波器(WLS)

基于加权最小二乘法的保边缘平滑滤波器(WLS)
Decompositions for Multi-Scale Tone and Detail Manipulation

1.1.10 专利:一种快速保边滤波方法(EPM)
  • 算法原理
    参考:图像保边滤波算法集锦–EPM滤波算法与实现
    核函数:
    在这里插入图片描述

    推导过程:
    在这里插入图片描述
    分析:
    (1)若边缘细节等图像变化比较的区域(即sigma^2远大于epsion),则Q接近于1,此时不具有滤波效果;
    (2)若图像平坦区域(即sigma^2远小于epsion),则Q接近于miu,此时具有近似均值滤波的效果。

  • 算法本质理解:
    核函数类似于导向滤波的核函数,该算法也是利用局部均值方差信息进行保边去噪。但是由于该算法相比导向滤波少了三次均值计算和一次方差计算,所以复杂度要低很多。

  • 更多参考:
    一种图像快速保边滤波方法 [发明]

1.1.11 智能模糊(PS Smart Blur)

详见:【CV系列】图像保边去噪算法:Smart Blur算法与实现(PS2018 Smart Blur)

这个滤波器的算法实现如下:

1,Smart Blur有两个参数:Radius和Threshold

Radius是邻域半径,Threshold是当前像素与周围像素的阈值差,范围为[0,255]

2,假设当前像素点为P(x,y),滤波结果为D,以P为中心,Radius为邻域半径,计算邻域范围内符合条件A的像素点像素值和的均值,即为M;

条件A:像素X的值在区间[P-Threshold,P+Threshold]内

3,滤波结果值D=M;

用公式表示如下:
在这里插入图片描述

算法主要思想:
邻域平均,所采用的邻域像素点是与目标像素点差值小于一定阈值,即采用与目标像素相近的像素进行邻域平均(利用了像素值相似性)。

SmartBlur算法相比均值滤波的改进之处是邻域像素点采用与目标像素点相近的,这样对边缘细节具有一定的保护作用。与双边滤波中的值域高斯核函数加权的思路有相似之处。

1.1.12 表面模糊(PS Surface Blur)

表面模糊是PS中的一个重要的包边滤波器,算法原理很简单,公式如下:
在这里插入图片描述
算法主要思想:
还是计算目标像素一定邻域范围内的不同像素的加权平均,与目标像素差异越小的邻域像素权重越大,与目标像素差异越大的邻域像素权重越小,利用了像素值相似性来实现保边滤波。

1.2、频域方法

参考Paper:
Wavelet Transform Based Image Denoise Using Threshold Approaches
New method of noise removal in images using curvelet transform
Wavelet-based denoising: A brief review
Image Denoise Based on Soft-Threshold and Edge Enhancement
Feature-based wavelet shrinkage algorithm for image denoising

1.2.1、DCT去噪:

当前频域去噪中效果较好并且实时的DCT去噪算法:
【CV系列】Image denoise: RDCT and RRDCT

更多参考:
优化IPOL网站中基于DCT(离散余弦变换)的图像去噪算法
SSE图像算法优化系列二十一:基于DCT变换图像去噪算法的进一步优化(100W像素30ms)。

1.2.2、DWT小波阈值去噪:

小波变换和小波阈值法去噪
Image Denoising using Wavelet Thresholding
Low-complexity image denoising based on statistical modeling of wavelet coefficients

1.3、联合空域和频域的方法

三维块匹配滤波BM3D

1.4、基于偏微分方程的方法(PDE)

参考:基于偏微分方程的图像去噪算法

1.5、深度学习类方法

深度学习类去噪:
深度学习图像去噪发展概述
基于深度学习的图像去噪暨SRMD论文阅读笔记
Image denoising method based on a deep convolution neural network_ IETIP2017.pdf



2、图像锐化算法方法概述

图像锐化算法主要有微分法(空域)、USM非锐化掩膜和高通滤波法(频域)三大类方法。

2.1 微分法(空域)

微分法主要有梯度算子和拉普拉斯算子。

2.2 USM非锐化掩膜

USM非锐化掩膜方法是指先提取低频图像,然后用原图减去低频得到高频。这种方法称为非锐化掩模(unsharpen mask),我们常使用低通滤波器(高斯、双边)对图像进行滤波,这种方法滤波器很好控制(包括大小和强弱),从而可以控制高频分量的强弱。

比如 典型的Photoshop USM锐化
(1)用滤波后的图像中每个像素减去滤波前的原始像素,得到diff;
(2)如果diff的绝对值大于0,则把滤波后的图像中每个像素加上对应的diff/2(对应数量取为50,阈值取为0)。

分析:
PS中的USM锐化算法有三个参数:半径Radius、数量Amount和阈值Threshold。其中,半径表示滤波器模板尺寸,数量表示锐化程度,阈值表示达到何种程度的像素才需要增强。半径越大,数量参数越大,锐化效果越明显。
实际效果表明,这种方式锐化效果比传统锐化方法(比如laplace锐化)能获得更好的调节效果。

PS USM锐化算法实现:

/************************************************************************
/ @Function: USMSharpenOneChannel
/ @Usage: Image sharpening using similiar photoshop unsharp mask algorithm for one channel
/ @Param: src(IN): source input image(noise image)
/	  dst(IN&OUT):IN: filter image OUT: output sharpen image
/	  width(IN): image image
/	  height(IN): image height
/ @Modified: 2019.5
/************************************************************************/
int USMSharpenOneChannel(unsigned char *src, unsigned char *dst, int width, int height)
{
	int i, j, diff;
	int iValue, iThresh = 0;
	int iAmount = 80;

	for(i = 0; i < height; i++)
	{
		       for(j = 0; j < width; j++)
		       {
			          diff = src[i*width+j] -  dst[i*width+j];
			          if(abs(diff) > iThresh)
			           {
				             iValue = src[i*width+j] + iAmount*diff/100;
				             dst[i*width+j] = (unsigned char)((((unsigned short)iValue)|((short)(255-iValue)>>15))&~iValue>>15);	
		            	}
		       }
	   } 
	return 0;
}

PS USM锐化算法效果图如下:

灰度图(单通道)处理效果:
==待补充!!!==
彩色图(三通道)处理效果:
在这里插入图片描述
说明:通过PS USM锐化之后,图像整体变得更加清晰,并且边缘细节区域对比度提高。

另一种USM锐化算法的实现:图像处理之USM锐化

算法效果:
==待补充!!!==

更多参考:
Unsharp Mask(USM)锐化算法的的原理及其实现。
图像锐化算法-sharpen
USM改进:数字图像算法研究—PS USM锐化算法详解
另一种USM锐化算法的实现:图像处理之USM锐化

2.3 高通滤波法(频域)

由于图像边缘细节部分对应于高频分量,因此图像锐化可以通过频域高通滤波的方法,关键在于选择合适的高通滤波器。
常用高通滤波器有:理想高通滤波器、巴特沃斯高通滤波器、指数高通滤波器和高斯滤波器。

Sharpen paper:
http://www.mayiwenku.com/p-5663450.html
https://ieeexplore.ieee.org/document/8167116
https://ieeexplore.ieee.org/document/766864
https://ieeexplore.ieee.org/document/1673453


THE END!

2018-11-26 14:49:30 qq_33001647 阅读数 1457

事情比较多比较杂,早点把学校的事弄完吧,好久没写博客了,最近计算机前沿这门课,老师要布置课题,大部分是Verilog HDL程序设计,脑壳疼,硬件太烦,在这里插入图片描述
不过还好,可以选择其他方向的
在这里插入图片描述

哈哈,api学习还是有必要的,不必造轮子,不过,要有造轮子的能力,具体分的课题是边缘检测算法的Robert算子
在这里插入图片描述
书上只是给个函数,可以理解为伪代码,具体实现,还是要自己去动手的,书上只是给个思路而已:
在这里插入图片描述

核心就是对像素的处理,获取位图像素位,处理像素位,设置像素位,就这么几部,当初想,多么简单啊,其实还是不能大意,遇到一些问题,然后慢慢克服,最终解决难题,只有这样,才能不断成长,绝对不能眼高手低
主要遇到的问题,就是获得位图的像素位

一开始,我以为BITMAP结构的bmBits就是存放像素位的,结果运行有问题
在这里插入图片描述
还以为是我自己没有新加载一个位图,在新位图里存放新像素位,结果还是不行,调试时发现BITMAP的bmBits始终为0
在这里插入图片描述
所以问题出在这,我们并没有真正获取到位图的像素位,要获取位图的像素位,可以用GetBitmapBits函数,函数怎么用去查msdn或者百度
相应的设置像素位用SetBitmapBits,下面就是Robert算子具体实现的核心代码了
在这里插入图片描述

最后实现效果:
在这里插入图片描述
在这里插入图片描述
好了,大功告成,一定要注意,获取设置位图像素位,用BITMAP的bmBits成员是不行的,用GetBitmapBits和SetBitmapBits即可
最后附上完整win32 API代码:

//VC++图像处理程序
//图像的边缘检测-Robert算子
# include<windows.h>
# include<cmath>


LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);//窗口过程函数
void RobertOperator(HDC hdc, HDC hMemDc, HBITMAP hBitmap, int Width, int Height);
int WINAPI WinMain(HINSTANCE hInstance,
	HINSTANCE hPrevInstance,
	PSTR szCmdLine,
	int iCmdShow) 
{
	TCHAR szAppName[] = TEXT("Robert算子");

	//设计窗口类
	WNDCLASS wndclass;//窗口类
	wndclass.cbClsExtra = 0;
	wndclass.cbWndExtra = 0;
	wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//窗口背景画刷(白色)
	wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
	wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
	wndclass.hInstance = NULL;
	wndclass.lpfnWndProc = WndProc;
	wndclass.lpszClassName = szAppName;//类名
	wndclass.lpszMenuName = NULL;
	wndclass.style = CS_HREDRAW | CS_VREDRAW;

	//注册窗口类
	if (!RegisterClass(&wndclass))
	{
		MessageBox(NULL, TEXT("Program requires windows NT!"), szAppName, MB_ICONERROR);
		return 0;
	}

	//创建窗口
	HWND hwnd = CreateWindow(szAppName,
		TEXT("Robert算子"),
		WS_OVERLAPPEDWINDOW,
		CW_USEDEFAULT,
		CW_USEDEFAULT,
	    540,
		630,
		NULL,
		NULL,
		hInstance,
		NULL);

	ShowWindow(hwnd, SW_SHOW);
	UpdateWindow(hwnd);

	MSG msg;//消息循环
	while (GetMessage(&msg, NULL, 0, 0))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
	

	return 0;
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	static HDC hMemDc;
	static int xWidth, yHeight;
	static BITMAP bm;
	static HBITMAP hBitmap;

	switch (uMsg)
	{
	case WM_CREATE:
	{
		//原位图
		 hBitmap= (HBITMAP)LoadImage(NULL, TEXT("Picture2.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
		if (hBitmap == NULL)
		{
			MessageBox(NULL, TEXT("读取图片失败"), TEXT("Error"), MB_ICONERROR);
			return 0;
		}

		//将原位图选进内存DC
		HDC hdc = GetDC(hwnd);
		hMemDc = CreateCompatibleDC(hdc);//内存DC
		SelectObject(hMemDc, hBitmap);
		ReleaseDC(hwnd, hdc);

		//计算位图的宽和高
		GetObject(hBitmap, sizeof(bm), &bm);
		xWidth = bm.bmWidth;
		yHeight = bm.bmHeight;
		return 0;
	}
	case WM_PAINT:
	{
		HDC hdc;
		PAINTSTRUCT ps;
		hdc = BeginPaint(hwnd, &ps);
		BitBlt(hdc, 0, 0, xWidth, yHeight, hMemDc, 0, 0, SRCCOPY);
		//BitBlt(hdc, 0, 300, xTempWidth, yTempHeight, hTempMemDc, 0, 0, SRCCOPY);
		RobertOperator(hdc, hMemDc,hBitmap,xWidth, yHeight);
		//BitBlt(hdc, 590, 0, xWidth, yHeight, hMemDc, 0, 0, SRCCOPY);
		EndPaint(hwnd, &ps);
		return 0;
	}
	case WM_CLOSE:
		DeleteDC(hMemDc);
		PostQuitMessage(0);
		//DestroyWindow(hwnd);
		return 0;
	}


	return DefWindowProc(hwnd, uMsg, wParam, lParam);
}

void RobertOperator(HDC hdc, HDC hMemDc,HBITMAP hBitmap,int Width, int Height)
{
	

	int Robert_Pixel[4];//Robert算子
	
	
	BYTE *pTempPixel = new BYTE[16*Width*Height];
	//得到位图的像素位
	GetBitmapBits(hBitmap,16*Width*Height,(LPVOID)pTempPixel);
	
	BYTE *pPixel = new BYTE[16*Width*Height];
	for(int j=0;j<4*Height-1;j++)
		for (int i = 0; i < 4*Width - 1; i++)
		{
			//生成Robert算子
			Robert_Pixel[0] = pTempPixel[j*4*Width+i];
			Robert_Pixel[1] = pTempPixel[j*4*Width+ i + 1];
			Robert_Pixel[2] = pTempPixel[(j + 1)*4*Width+ i];
			Robert_Pixel[3] = pTempPixel[(j + 1)*4*Width+i + 1];

			//生成当前像素
			pPixel[j*4*Width+i] = (int)sqrt((Robert_Pixel[0] - Robert_Pixel[3])*
				(Robert_Pixel[0] - Robert_Pixel[3]) + (Robert_Pixel[1] - Robert_Pixel[2])*
				(Robert_Pixel[1] - Robert_Pixel[2]));
			//pPixel[j*Width + i] = pTempPixel[j*Width + i] + 100;

		}
	//设置新像素位
	SetBitmapBits(hBitmap,16* Width*Height,pPixel);
	BitBlt(hdc,0, 300, Width, Height, hMemDc, 0, 0, SRCCOPY);

}

注意相应的位图文件要放在工程目录下,以及位图的文件名

future

阅读数 1797

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