要求



去掉给定指纹区域附近的雾气。

方法

1, Make a histogram of the origin picture, observe the gray distribution of the pixel.
2, Choose the appropriate threshold and then turn the picture into binarization.
3, Define a mask matrix and turn the black pixel into white and turn the white pixel into black, so that we can use the erosion and dilation easily.
4, Use the method of morphology such as erosion and dilation, as well as Open and Close operation, to obtain a basic area of the finger image without the noises, which are around the finger.
5, After obtain the area of finger, turn this area into the origin picture by multiply the input picture.
6, Choose the part of the picture which been smoothing slightly to fulfill the result picture, where lost some detail after masking.
7, Turn the result picture into binarization to have a better look of the result.

效果








源码(Matlab)

%picture 5
clear all;
x =  imread('5.bmp');
[M,N]=size(x);
x_5 = x;g = im2bw(x,80/255);mask=zeros(M,N);
g =uint8(g);
for i=1:Mfor j=1:Nif(g(i,j)==0)mask(i,j)=1;end  end
endB1 = ones(6);
B2 = ones(3);f1 = imdilate(mask,B2);
f1=imerode(f1,B2);f1=imdilate(f1,B1);
f1=imdilate(f1,B1);
f1=imdilate(f1,B1);
f1=imdilate(f1,B1);
f1=imdilate(f1,B1);
f1=imdilate(f1,B1);
f1=imdilate(f1,B1);f1=imerode(f1,B1);
f1=imerode(f1,B1);
f1=imerode(f1,B1);for i =1:11f1=imdilate(f1,B1);
endfor i =1:13f1=imerode(f1,B1);
endg =x.*uint8(f1);
for i=1:Mfor j=1:Nif(g(i,j)==0)g(i,j)=255; endend
endg_5 = im2bw(g,220/255);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%picture 8
x =  imread('8.bmp');
[M,N]=size(x);
x_8 = x;g = im2bw(x,80/255);mask=zeros(M,N);
g =uint8(g);
for i=1:Mfor j=1:Nif(g(i,j)==0)mask(i,j)=1;end  end
endB1 = ones(6);
B2 = ones(3);f1 = imdilate(mask,B2);
f1=imerode(f1,B2);f1=imdilate(f1,B1);
f1=imdilate(f1,B1);
f1=imdilate(f1,B1);
f1=imdilate(f1,B1);
f1=imdilate(f1,B1);
f1=imdilate(f1,B1);
f1=imdilate(f1,B1);f1=imerode(f1,B1);
f1=imerode(f1,B1);
f1=imerode(f1,B1);for i =1:8f1=imdilate(f1,B1);
endfor i =1:11f1=imerode(f1,B1);
endg =x.*uint8(f1);
for i=1:Mfor j=1:Nif(g(i,j)==0)g(i,j)=255; endend
endg_8 = im2bw(g,240/255);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%picture 18x =  imread('18.bmp');
[M,N]=size(x);
x_18 = x;
g_orign = x;t = 190;
for i=1:Mfor j=1:Nif (g_orign(i,j)>=t)g_orign(i,j)=255;elseg_orign(i,j)=0;endend
endg = im2bw(x,100/255);mask=zeros(M,N);
g =uint8(g);
for i=1:Mfor j=1:Nif(g(i,j)==0)mask(i,j)=1;end  end
endB1 = ones(6);
B2 = ones(3);f1 = imdilate(mask,B2);
f1=imerode(f1,B2);f1=imdilate(f1,B1);
f1=imdilate(f1,B1);
f1=imdilate(f1,B1);
f1=imdilate(f1,B1);
f1=imdilate(f1,B1);f1=imerode(f1,B1);
f1=imerode(f1,B1);
f1=imerode(f1,B1);
f1=imerode(f1,B1);
f1=imerode(f1,B1);
f1=imerode(f1,B1);
f1=imerode(f1,B1);
f1=imerode(f1,B1);
f1=imerode(f1,B1);
f1=imerode(f1,B1);
f1=imerode(f1,B1);
f1=imerode(f1,B1);
f1=imerode(f1,B1);for i =1:19f1=imdilate(f1,B1);
endfor i =1:13f1=imerode(f1,B1);
endg =x.*uint8(f1);
for i=1:Mfor j=1:Nif(g(i,j)==0)g(i,j)=255; endend
endfor i=2*M/3:Mfor j=1:Ng(i,j) = g_orign(i,j);end
endg_18 = im2bw(g,220/255);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%picture 22x_rgb =  imread('22.jpg');
x = rgb2gray(x_rgb);
[M,N]=size(x);
x_22 = x;
x_orign = x;g = im2bw(x,35/255);mask=zeros(M,N);
g =uint8(g);
for i=1:Mfor j=1:Nif(g(i,j)==0)mask(i,j)=1;end  end
endB1 = ones(9);
B2 = ones(3);f1 = imdilate(mask,B2);
f1=imerode(f1,B2);f1=imdilate(f1,B1);
f1=imdilate(f1,B1);
f1=imdilate(f1,B1);f1=imerode(f1,B1);
f1=imerode(f1,B1);
f1=imerode(f1,B1);
f1=imerode(f1,B1);for i =1:13f1=imdilate(f1,B1);
endfor i =1:13f1=imerode(f1,B1);
endg =x.*uint8(f1);
for i=1:Mfor j=1:Nif(g(i,j)==0)g(i,j)=255;         endend
endfor i=M/2:Mfor j=1:Ng(i,j) = x_orign(i,j);end
endSE = [0 1 0;1 1 1;0 1 0;];
g_22 = imerode(g,SE);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%output the result
figure(1)
subplot(2,4,1)
imshow(x_5),title('Orign5');
subplot(2,4,2);
imshow(g_5),title('Result5');
subplot(2,4,3)
imshow(x_8),title('Orign8');
subplot(2,4,4);
imshow(g_8),title('Result8');subplot(2,4,5)
imshow(x_18),title('Orign18');
subplot(2,4,6);
imshow(g_18),title('Result18');
subplot(2,4,7)
imshow(x_22),title('Orign22');
subplot(2,4,8);
imshow(g_22),title('Result22');

数字图像处理Project1——指纹图片的增强相关推荐

  1. 数字图像处理-3.7混合空间增强法-骨骼图 基于opencv3.4.3的实现

    引子 刚开始看冈萨雷斯的<数字图像处理>时,3.7节 混合空间增强法中图3.4.3中的全身骨骼图的印象非常深刻.牛XX啊,这么模糊,都能变得这么清楚.虽然书中也给出了大段大段的解释,但是能 ...

  2. 数字图像处理实验四图像频域增强

    一.实验目的 (1)了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学的图像增强的理论知识和相关算法. (2)熟练掌握低通.高通.带通.同态滤波器的使用方法,明确不同性质的滤波器对图像的影响 ...

  3. 【数字图像处理】BMP图片的读取显示存储(C语言实现)

    (一)背景介绍 这段时间接到了一个新活,是关于图像处理的一个探地摄像头的项目.所以也差不多是时候开始学习一下数字图像处理的知识了.本来我们的方案是直接移植opencv,编译一下以后其他就基本啥都不用管 ...

  4. 数字图像处理笔记二 - 图片缩放(最近邻插值(Nearest Neighbor interpolation))

    图片缩放的两种常见算法: 最近邻域内插法(Nearest Neighbor interpolation) 双向性内插法(bilinear interpolation) 本文主要讲述最近邻插值(Near ...

  5. 【数字图像处理】三.MFC实现图像灰度、采样和量化功能详解

    本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程<数字图像处理>及课件进行讲解,主要通过MFC单文档视图实现显示BMP格式图片,并通过Bitmap进行灰度 ...

  6. opencv-python数字图像处理学习7:提取一副彩色图像中红色,用HIS模型处理,RGB模型对比显示

    提取一副彩色图像中红色,用HIS模型处理,RGB模型对比显示 参考文献 引入 显示HIS模型提取的红色 RGB模型 提取红色 参考文献 bgr_2_hsi.color_slicing来自:数字图像处理 ...

  7. 数字图像处理(二)灰度、量化、采样

    转自https://blog.csdn.net/eastmount/article/details/46010637 本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程 ...

  8. 【python】数字图像处理课程设计:彩色图像复原

    先上效果图,对于jpg图片,在一分钟内处理完成,以下分别是原始图片,彩色图像,自动裁剪等优化后的图像. 对于tif图片,在三分钟内处理完成,以下分别是原始图片,彩色图像,裁剪等优化后的图像.(原图为6 ...

  9. 数字图像处理05--彩色增强

    数字图像处理 1. 简述并举例说明彩色增强技术的分类 伪彩色增强 由于人类对颜色的识别能力远强于灰度识别,需要将灰度图像按照线性映射成不同的彩色提高人对图像的识别能力,并提高图片的可视度 亮度切割 基 ...

  10. 数字图像处理笔记-02(图像空域增强技术及联合运用)

    数字图像处理笔记-02(图像空域增强技术及联合运用) (一) 图像增强 1.1 基本概念 由于图像在传输或者处理过程中会引入噪声或使图像变模糊,从而降低了图像质量,甚至淹没了特 征,给分析带来了困难. ...

最新文章

  1. 清华旷视:让VGG再次伟大!
  2. Exchange2013学习笔记(4)-Ex的重定向
  3. 单例Singleton
  4. (五)DTD验证XML文档
  5. 强强合体:Docker版Kali Linux发布
  6. 二叉树的应用 表达式处理_【每日编程208期】2018年408应用题41题
  7. Gradle打可运行Jar包(包含依赖第三方库中的类)
  8. css颜色 333是什么颜色,纯css实现的颜色扇附图
  9. 【文文殿下】[BZOJ4008] [HNOI2015] 亚瑟王
  10. thinkphp count distinct
  11. Java线程池如何体现自己的用途
  12. HTML5+CSS简单的期末大作业:体育运动主题网站设计——羽毛球网页(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 大学生毕设网页设计
  13. Sentaurus 入门之一安装教程
  14. SSL1284压岁钱
  15. Blinky实例分析来认识一下QP状态机
  16. element表格标题两行设置办法
  17. 我所知道的金融数据库
  18. 《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——1.2 域和计算模型...
  19. React的移动端项目打包成手机的app软件apk格式
  20. 寒風的Cocos2dx之旅之剪刀、石头、布系列专题(2 )

热门文章

  1. Vue的生命周期钩子函数之activated
  2. The certificate used to sign “XXX“ has either expired or has been revoked.
  3. 利用js快速完成大学生新生安全教育课程
  4. PAT A 1034
  5. 「LCA」[USACO10HOL]牛的政治Cow Politics
  6. 数字孪生的思考 05 - VAM/XR
  7. [UESTC878]温泉旅店
  8. 按键精灵手机版_关于截屏一些方法
  9. python程序turtle雪人_用turtle画一个雪人
  10. HDUOJ 5651 xiaoxin juju needs help