数字图像处理课设报告
数字图像课程设计报告

《数字图像处理》课程设计报告——手写阿拉伯数字的识别1、课程设计目的1)、提高分析问题、解决问题的能力,进一步巩固数字图像处理系统中的基本原理与方法。
2)、掌握文献检索的方法与技巧。
3)、熟悉掌握一门计算机语言,可以进行数字图像的应用处理的开发设计。
2、方法综述字符识别处理的信息可分为两大类:一类是文字信息,处理的主要是用各国家、各民族的文字(如:汉字,英文等)书写或印刷的文本信息,目前在印刷体和联机手写方面技术已趋向成熟,并推出了很多应用系统;另一类是数据信息,主要是由阿拉伯数字及少量特殊符号组成的各种编号和统计数据,如:邮政编码、统计报表、财务报表、银行票据等等,处理这类信息的核心技术是手写数字识别。
本次实验是对手写的阿拉伯数字进行识别,主要步骤包括预处理模块(其中用到图像分割方法),特征提取和利用人工神经网络(具体运用BP 神经网络方法)进行数字的识别。
2.1图像分割:图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。
它是由图像处理到图像分析的关键步骤。
现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。
2.1.1基于阈值的分割方法灰度阈值分割[1]法是一种最常用的并行区域技术,它是图像分割中应用数量最多的一类。
阈值分割方法实际上是输入图像f到输出图像g的如下变换:其中,T为阈值,对于物体的图像元素g(i,j)=l,对于背景的图像元素g(i,j)=0。
由此可见,阈值分割算法的关键是确定阈值,如果能确定一个合适的阈值就可准确地将图像分割开来。
阈值确定后,将阈值与像素点的灰度值比较和像素分割可对各像素并行地进行,分割的结果直接给出图像区域。
阈值分割的优点是计算简单、运算效率较高、速度快。
在重视运算效率的应用场合(如用于硬件实现),它得到了广泛应用。
人们发展了各种各样的阈值处理技术,包括全局阈值、自适应阈值、最佳阈值等等。
数字图像处理实验报告

数字图像处理实验报告1. 引言数字图像处理是使用计算机来处理和优化图像的一种技术。
在本实验中,我们将探索几种常见的数字图像处理方法,并使用Python编程语言和相关库来实现。
2. 实验目的本实验的主要目的是:1.了解图像的基本特性和数字图像处理的基本原理;2.熟悉Python编程语言和相关图像处理库的使用;3.实现常见的图像处理算法并进行实验验证。
3. 实验方法在本实验中,我们使用Python编程语言和以下相关库来实现图像处理算法:•OpenCV:用于图像读取、显示和保存等基本操作;•Numpy:用于图像数据的处理和算术运算;•Matplotlib:用于图像的可视化和结果展示。
以下是实验涉及到的图像处理方法和步骤:1.图像读取和显示:使用OpenCV库读取图像,使用Matplotlib库显示图像;2.图像的灰度化:将彩色图像转换为灰度图像;3.图像的二值化:将灰度图像转换为黑白二值图像;4.图像的平滑处理:使用平滑滤波器对图像进行平滑处理,如均值滤波和高斯滤波;5.图像的边缘检测:使用边缘检测算法对图像进行边缘检测,如Sobel算子和Canny算子;6.图像的直方图均衡化:对灰度图像进行直方图均衡化,增强图像的对比度。
4. 实验过程和结果4.1 图像读取和显示首先,我们使用OpenCV库读取一张图像,并使用Matplotlib库显示该图像:import cv2import matplotlib.pyplot as plt# 读取图像img = cv2.imread('image.jpg')# 显示图像plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) plt.axis('off')plt.show()4.2 图像的灰度化接下来,我们将彩色图像转换为灰度图像:# 灰度化图像gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 显示灰度图像plt.imshow(gray_img, cmap='gray')plt.axis('off')plt.show()4.3 图像的二值化然后,我们将灰度图像转换为黑白二值图像:# 二值化图像_, binary_img = cv2.threshold(gray_img, 128, 255, cv2.THRESH_BINARY)# 显示二值图像plt.imshow(binary_img, cmap='gray')plt.axis('off')plt.show()4.4 图像的平滑处理接下来,我们使用平滑滤波器对图像进行平滑处理,例如使用5x5的均值滤波器和高斯滤波器:# 均值滤波mean_img = cv2.blur(img, (5, 5))# 高斯滤波gaussian_img = cv2.GaussianBlur(img, (5, 5), 0) # 显示平滑处理后的图像plt.figure(figsize=(10, 5))plt.subplot(121)plt.imshow(cv2.cvtColor(mean_img, cv2.COLOR_BGR2R GB))plt.title('Mean Filter')plt.axis('off')plt.subplot(122)plt.imshow(cv2.cvtColor(gaussian_img, cv2.COLOR_B GR2RGB))plt.title('Gaussian Filter')plt.axis('off')plt.show()4.5 图像的边缘检测然后,我们使用边缘检测算法对图像进行边缘检测,例如使用Sobel算子和Canny算子:# 边缘检测sobel_img = cv2.Sobel(gray_img, cv2.CV_8U, 1, 1, ksize=3)canny_img = cv2.Canny(gray_img, 50, 150)# 显示边缘检测结果plt.figure(figsize=(10, 5))plt.subplot(121)plt.imshow(sobel_img, cmap='gray')plt.title('Sobel Operator')plt.axis('off')plt.subplot(122)plt.imshow(canny_img, cmap='gray')plt.title('Canny Operator')plt.axis('off')plt.show()4.6 图像的直方图均衡化最后,我们对灰度图像进行直方图均衡化,以增强图像的对比度:# 直方图均衡化equalized_img = cv2.equalizeHist(gray_img)# 显示直方图均衡化结果plt.imshow(equalized_img, cmap='gray')plt.axis('off')plt.show()5. 实验总结通过本实验,我们熟悉了数字图像处理的基本方法和步骤,并使用Python编程语言和相关库实现了图像的读取、显示、灰度化、二值化、平滑处理、边缘检测和直方图均衡化等操作。
数字图像处理实验报告

数字图像处理实验报告数字图像处理实验报告(一)实验目的1.理解数字图像处理的基本概念与原理。
2.掌握数字图像处理的基本方法。
3.掌握常用数字滤波器的性质和使用方法。
4.熟练应用数字图像处理软件进行图像处理。
实验器材计算机、MATLAB软件实验内容1.图像的读写与显示首先,我们需要在MATLAB中读入一幅图像,并进行显示。
% 导入图像文件I = imread('myimage.jpg');% 显示图像imshow(I);2.图像的分辨率与色彩空间转换数字图像处理中的一个重要概念是图像的分辨率,通常用像素数量表示。
图像的分辨率越高,代表着图像包含更多的像素,从而更具细节和清晰度。
在数字图像处理中,常常需要将一幅图像从一种色彩空间转换为另一种色彩空间。
RGB色彩空间是最常见的图像色彩空间之一,并且常常作为其他色彩空间的基础。
% 转换图像色彩空间J = rgb2gray(I);% 显示转换后的图像imshow(J);3.图像的增强与滤波图像的增强通常指的是对图像的对比度、亮度和清晰度等方面进行调整,以改善图像的质量和可读性。
数字图像处理中的滤波是一种常用的图像增强方法。
滤波器是一个能够对图像进行局部操作的矩阵,它能够提取或抑制特定的图像特征。
% 对图像进行平滑滤波K = imgaussfilt(J, 1);% 显示滤波后的图像imshow(K);4.数字图像处理在实际应用中的例子数字图像处理在很多实际应用中被广泛应用。
这些应用包括医疗成像、计算机视觉、人脸识别、安防监控等。
下面是数字图像处理在人脸识别应用中的一个简单例子。
% 导入图像文件I = imread('face.jpg');% 进行人脸检测faceDetector = vision.CascadeObjectDetector;bbox = step(faceDetector, I);% 在图像上标记人脸位置IFaces = insertObjectAnnotation(I, 'rectangle', bbox, 'Face');imshow(IFaces);实验结论通过本次实验,我已经能够理解数字图像处理的基本概念与原理,掌握数字图像处理的基本方法,熟练应用数字图像处理软件进行图像处理。
数字图像处理报告

《数字图象处理》课程项目实施报告题目: 人脸面部自动定位与分割 __________组号: _______________________________________任课教师: _________________________________组长: ________________成员:________________成员:________________成员:________________联系方式:__________________________二O—五年一月十四日星期三目录目录 (I)图目录................................................................ I II —项目介绍 (1)1.1概述 (1)1.2丁力自匕•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 11.3实施要求 (1)二主要设计思想 (2)2」前期准备 (2)2.2人脸肤色区域检测 (2)2.2.1方法一 (2)2.2.2方法二 (2)2.3非人脸区域判别 (3)2.3.1判别规则 (3)2.4脖子区域判别 (3)2.5五官识别-积分投影 (4)三主要实施过程 (4)3.1单人 (4)3.2多人 (7)四结果分析 (8)4」肤色检测 (8)4.1.1方法一 (8)4.1.2方法二 (8)4.1.3肤色检测阶段总结 (9)4.2去除非人脸区域 (9)4.2.1单脸 (9)4.2.2多脸 (9)4.3五官分割 (9)4.3.1眼 (9)4.3.2鼻、嘴 (10)参考文献 (11)参考代码 (12)4.4主程序 (12)4.5同态滤波 (17)4.6肤色检测-简易高斯模型 (19)4.7切割非脸区域 (21)4.8条件判断 (23)图目录Figure 1 (9)Figure 2 (9)Figure 3 (10)Figure 4 (10)Figure 5 (11)Figure 6 (12)Figure 7 (14)项目介绍图像分割是图像处理的主要LI标,本项U综合利用图像采集、图像增强、彩色图像处理、图像分割等知识,根据人脸肤色检测及脸部五官形状,设讣实现人脸照片中的人脸面部检测与五官分割。
《数字图像处理》课程设计报告

1.课程设计目的1、提高分析问题、解决问题的能力,进一步巩固数字图像处理系统中的基本原理与方法。
2、熟悉掌握一门计算机语言,可以进行数字图像的应用处理的开发设计。
2.课程设计内容及实现、二维快速傅立叶变换:本项目的重点是:这个项目的目的是开发一个2-D FFT程序“包”,将用于在其他几个项目。
您的实现必须有能力:(a)乘以(-1),x + y的中心变换输入图像进行滤波。
(b) 一个真正的函数相乘所得到的(复杂的)的阵列(在这个意义上的实系数乘以变换的实部和虚部)。
回想一下,对相应的元件上完成两幅图像的乘法。
(c) 计算傅立叶逆变换。
(d) 结果乘以(-1)x + y的实部。
(e) 计算频谱。
基本上,这个项目实现了图。
如果您正在使用MATLAB,那么您的傅立叶变换程序将不会受到限制,其大小是2的整数次幂的图像。
如果要实现自己的计划,那么您所使用的FFT 例程可能被限制到2的整数次幂。
在这种情况下,你可能需要放大或缩小图像到适当的大小,使用你的程序开发项目02-04逼近:为了简化这个和以下的工程(除项目04-05),您可以忽略图像填充(4.6.3节)。
虽然你的结果不会完全正确,将获得显着的简化,不仅在图像的大小,而且在需要裁剪的最终结果。
由这种近似的原则将不会受到影响结果如下:主要代码f=imread('(a).jpg');H=imread('(a).jpg');subplot(3,2,1);imshow(f);title('(a)原图像');[M1,N1]=size(f);f=im2double(f);[M2,N2]=size(H);H=im2double(H); %把灰度图像I1的数据类型转换成转换成双精度浮点类型for x=1:M1for y=1:N1f(x,y)=(-1)^(x+y)*f(x,y); %用(-1)^(x+y)乘以输入图像,来实现中心化变换endendF=fft2(f); %使用函数fft2可计算傅立叶变换subplot(3,2,3);imshow(F);title('(b)傅立叶变换的图像');if(M2==1)&&(N2==1)G=F(x,y)*H(x,y);elseif((M1==M2)&&(N1==N2))for x=1:M1for y=1:N1G(x,y)=F(x,y)*H(x,y);endendelseerror('输入图像有误','ERROR');end %通过两个图像的乘法程序,实现对相应元素的相乘g=ifft2(G);subplot(3,2,4);imshow(g);title('(c)傅立叶逆变换的图像');for x=1:M1for y=1:N1g(x,y)=(-1)^(x+y)*g(x,y);endendg=real(g);S=log(1+abs(F)); %计算傅立叶幅度谱并做对数变换subplot(3,2,5);plot(S); %二维图像显示幅度谱title('(d)二维图像显示幅度谱');Q=angle(F); %计算傅立叶变换相位谱subplot(3,2,6);plot(Q);title('(e)二维图像显示相位谱'); %二维图像显示相位谱结果截图图1 傅里叶变换及频谱图结果分析:图1中(a)是原始灰度图像,对原图进行傅里叶变换,用(-1)^(x+y)乘以输入图像,来实现中心化变换得到(b),(c)为傅里叶变换的逆变换得到的图像。
数字图像处理的课程设计

数字图像处理的课程设计一、课程目标知识目标:1. 理解数字图像处理的基本概念,掌握图像的数字化表示方法;2. 掌握图像处理的基本操作,如图像变换、滤波、增强和复原;3. 了解常见的图像分割和特征提取方法,并应用于实际问题;4. 掌握图像压缩的基本原理及常用算法。
技能目标:1. 能够运用图像处理软件进行基本的图像编辑和操作;2. 能够编写简单的数字图像处理程序,实现对图像的基本处理功能;3. 能够运用所学的图像处理方法解决实际问题,如图像去噪、图像增强等;4. 能够对图像进行有效的压缩,以适应不同的应用场景。
情感态度价值观目标:1. 培养学生对数字图像处理技术的兴趣和热情,激发其探索精神;2. 培养学生的团队合作意识,学会与他人共同解决问题;3. 增强学生的实际操作能力,使其认识到理论与实践相结合的重要性;4. 引导学生关注图像处理技术在日常生活和各领域的应用,提高其科技素养。
课程性质:本课程为高年级选修课程,旨在使学生掌握数字图像处理的基本原理和方法,培养其实际应用能力。
学生特点:学生具备一定的数学基础和编程能力,对图像处理有一定了解,但尚未深入学习。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,以实际应用为导向,提高学生的动手能力和创新能力。
通过本课程的学习,使学生能够达到上述课程目标,为未来进一步学习和研究打下坚实基础。
二、教学内容1. 数字图像基础:包括图像的数字化表示、图像质量评价、颜色模型等基本概念;- 教材章节:第1章 数字图像处理基础2. 图像增强:介绍直方图均衡化、图像平滑、锐化等增强方法;- 教材章节:第3章 图像增强3. 图像复原:涉及图像退化模型、逆滤波、维纳滤波等复原方法;- 教材章节:第4章 图像复原4. 图像分割与特征提取:包括阈值分割、边缘检测、区域生长等分割方法,以及特征点的提取和描述;- 教材章节:第5章 图像分割与特征提取5. 图像压缩:介绍图像压缩的基本原理,如JPEG、JPEG2000等压缩算法;- 教材章节:第6章 图像压缩6. 数字图像处理应用:分析图像处理在医学、遥感、计算机视觉等领域的应用案例;- 教材章节:第7章 数字图像处理应用教学进度安排:1. 数字图像基础(2学时)2. 图像增强(4学时)3. 图像复原(4学时)4. 图像分割与特征提取(6学时)5. 图像压缩(4学时)6. 数字图像处理应用(2学时)三、教学方法为提高教学效果,本课程将采用以下多样化的教学方法:1. 讲授法:教师通过系统的讲解,使学生掌握数字图像处理的基本概念、原理和方法。
数字图像处理-课程设计报告-matlab

数字图像处理课程设计报告姓名:学号:班级: .net设计题目:图像处理教师:赵哲老师提交日期:12月29日一、设计内容:主题:《图像处理》详细说明:对图像进行处理(简单滤镜,模糊,锐化,高斯模糊等),对图像进行处理(上下对称,左右对称,单双色显示,亮暗程度调整等),对图像进行特效处理(反色,实色混合,色彩平衡,浮雕效果,素描效果,雾化效果等),二、涉及知识内容:1、二值化2、各种滤波3、算法等三、设计流程图插入图片对图片进行处理二值化处理重复输出两幅图结束四、实例分析及截图效果:运行效果截图:第一步:读取原图,并显示close all;clear;clc;% 清楚工作窗口clc 清空变量clear 关闭打开的窗口close all I=imread('1.jpg');% 插入图片1.jpg 赋给Iimshow(I);% 输出图II1=rgb2gray(I);%图片变灰度图figure%新建窗口subplot(321);% 3行2列第一幅图imhist(I1);%输出图片title('原图直方图');%图片名称一,图像处理模糊H=fspecial('motion',40);%% 滤波算子模糊程度40 motion运动q=imfilter(I,H,'replicate');%imfilter实现线性空间滤波函数,I图经过H滤波处理,replicate反复复制q1=rgb2gray(q);imhist(q1);title('模糊图直方图');二,图像处理锐化H=fspecial('unsharp');%锐化滤波算子,unsharp不清晰的qq=imfilter(I,H,'replicate');。
数字图像处理matlab课程设计

数字图像处理matlab课程设计一、教学目标本课程的教学目标是使学生掌握数字图像处理的基本理论和方法,学会使用MATLAB软件进行图像处理和分析。
通过本课程的学习,学生应达到以下具体目标:1.理解数字图像处理的基本概念、原理和算法。
2.熟悉MATLAB图像处理工具箱的使用。
3.能够运用数字图像处理的基本算法解决实际问题。
4.能够使用MATLAB进行图像处理和分析,撰写相关的程序代码。
情感态度价值观目标:1.培养学生的创新意识和团队协作精神。
2.培养学生对数字图像处理技术的兴趣,提高其综合素质。
二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.数字图像处理基本概念:图像处理的基本概念、图像数字化、图像表示和图像变换。
2.图像增强和复原:图像增强、图像去噪、图像复原。
3.图像分割和描述:图像分割、图像特征提取和描述。
4.图像形态学:形态学基本运算、形态学滤波、形态学重建。
5.MATLAB图像处理工具箱的使用:MATLAB图像处理工具箱的基本功能、常用图像处理函数。
6.图像处理实例分析:结合实际案例,分析数字图像处理技术的应用。
三、教学方法为了实现课程目标,本课程将采用以下教学方法:1.讲授法:通过讲解图像处理的基本概念、原理和算法,使学生掌握图像处理的基本知识。
2.案例分析法:通过分析实际案例,使学生了解数字图像处理技术在实际中的应用。
3.实验法:通过上机实验,使学生熟练掌握MATLAB图像处理工具箱的使用,提高学生的实际操作能力。
4.讨论法:学生进行课堂讨论,激发学生的思维,培养学生的创新意识和团队协作精神。
四、教学资源为了支持教学内容和教学方法的实施,本课程将采用以下教学资源:1.教材:《数字图像处理(MATLAB版)》。
2.参考书:相关领域的经典教材和论文。
3.多媒体资料:教学PPT、视频教程等。
4.实验设备:计算机、MATLAB软件、图像处理相关硬件设备。
五、教学评估本课程的评估方式包括平时表现、作业、考试等多个方面,以全面、客观、公正地评价学生的学习成果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理课程设计报告细胞识别目录第一部分1、实验课题名称----------------------------------------------------------------------------------32、实验目的----------------------------------------------------------------------------------------33、实验内容概要----------------------------------------------------------------------------------3第二部分1、建立工程文件----------------------------------------------------------------------------------32、图像信息获取----------------------------------------------------------------------------------43、如何建立下拉菜单----------------------------------------------------------------------------64、标记Mark点------------------------------------------------------------------------------------65、二值化---------------------------------------------------------------------------------------------96、填洞------------------------------------------------------------------------------------------------97、收缩------------------------------------------------------------------------------------------------108、获取中心点--------------------------------------------------------------------------------------119、细胞计数-----------------------------------------------------------------------------------------1310、All-steps-----------------------------------------------------------------------------------------1311、扩展功能---------------------------------------------------------------------------------------14 第三部分12、各步骤结果和错误举例--------------------------------------------------------------------16 第四部分13、心得体会----------------------------------------------------------------------------------------22第一部分1、实验课题:细胞识别2、实验目的:对血液细胞切片图片进行各种处理,最终得出细胞的数目、面积等信息。
3、实验内容概要:基于VC++软件下的细胞识别,通过细胞的标记、二值化、填洞、收缩、获取中心点、计数等过程完成实验目的。
第二部分——实验具体步骤1、建立工程文件①新建MFC工程项目:--MFC AppWizard、工程名②拷贝,到工程文件夹,再向工程里添加③添加变量:m_lpDib 和头文件#include””④:变量(m_lpDib)的new、delete⑤: Serialize()2、图像信息获取①读取图像参数: OnDraw() m_pDib->Draw()如果图像不为空的话,那么就执行如下主要代码:②点击键,建立类向导,在messages中添加OnInitialUpdate()函数,添加代码实现对自动打开固定图片。
③通过鼠标右击,点击建立类向导,在messages中添加OnMouseMove()函数,添加代码实现获取所要信息,即实现鼠标在图像任一位置移动时可以直观的读取相对应位置的信息。
可以在屏幕上显示鼠标所指点的坐标以及RGB、HSI和灰度值,通过HSI的可以选取合适的阈值来找到细胞以及边界。
④为了RGB图像转化为人眼更容易识别的HSI模型,我们可以通过添加成员函数RgbtoHsi来实现这一功能。
HSI模型与RGB模型的转化关系(添加函数时,可以右击类窗口中的,选中add member function,之后选择函数的返回值类型和函数描述,其它默认不变)确定后在里面添加实现函数功能的代码。
3、添加下拉菜单在resourceview那栏的找到菜单按键设置双击,后在里面添加所需按键每个按键的ID号为注意在填写为IDR_加菜单大写。
之后右击按键,建立类向导添加按键所需函数4、标记mark分为四步1.找出mark(red)点和maybemark(blue)点2.将maybemark(blue)点变成mark(black red)点3.将mark(black red)点变成edge(yellow(fullred&&fullgreen))点4.edge点滤波基本思想:Mark点指的是我们要寻找的细胞内的点。
我们先获取每一个像素点的RGB 分量,然后我们将其转化成HSI分量,将H分量进行归一化,因为S的范围是0到1,所以我们要进行尺度的一致,这样才具有可计算性。
然后我们通过每个像素点的H分量和S分量的值与细胞内部的H分量和S分量计算欧几里得距离,设定一个Mark门限值(我们这里将MarkDoor设置为,大家可以行设置合适的参数),小于这个门限值我们就当做是细胞的内部,然后对细胞进行标记(Red)。
还需要设定一个Maybe Mark门限值(我们这里将Maybe MarkDoor设置为,大家可以行设置合适的参数),我们大于Mark门限值小于Maybe Mark 门限值时,我们暂时看成是细胞,我们进行Maybe Mark的标记(Blue)。
否则的话,我们需要考虑,一些不是Mark和Maybe Mark点的*lpSrc==0我们区别一下赋值为1,*lpSrc==255我们区别一下赋值为254,*(lpSrc+1)==255我们区别一下赋值为254.这样的话,我们在后面判断是否为Mark点的时候,我们只需要判断*lpSrc是否为0就可以了,判断Maybe Mark 点时只需要判断*(lpSrc)是否为255就可以了。
对于边缘的判断只需要判断*(lpSrc+1)是否为255就可以了。
将细胞标记为Mark用红色(255,0,0)标记出来,将可能是的细胞标记为MayBe Mark 用蓝色(0,0,255)标记出来。
将MayBeMark To Mark的区域用亮红(128,0,0)表示,将不可能是细胞的区域、细胞边界分别用绿色标记出来。
操作过程:(1)根据H、S的欧几里得距离sqrt(s2+h2)来大致的确定哪些是细胞(Mark)和可能是细胞(Maybe Mark)的点。
(2)根据Maybe Mark点周围的情况,如果它的上下左右四个方向有Mark点,则将Maybe Mark点变成Mark点。
(3)用Sobel算子来做边缘的提取边界(0,255,255)(255,255,0),使用3*3的模板,使用欧几里得距离来判断是否为边缘。
两种Sobel算子如下:主要代码如下:doubletmp1=pixel[0]+2*pixel[1]+pixel[2]-pixel[6]-2*pixel[7]-pixel[8]; doubletmp2=pixel[0]+2*pixel[3]+pixel[6]-pixel[2]-2*pixel[5]-pixel[8]; double edge=sqrt(tmp1*tmp1+tmp2*tmp2);if(edge>edgeDoor)*(lpDst+1)=255;adius<(j).radius) pt=(i);*/(i).x=(x+x0)/2;=(y+y0)/2;(i).radius=max(i).radius,(j).radius)+4;pt=pt=(i);d)在无相近点的情况下,若半径小于8,则删除。
主要代码如下:if(bdelete){("去掉潜在的错误(圆r<8 Redpen)后数目=%d",());MessageBox(msg);}e)两圆相交,若其中一圆非相交部分面积小于50%,则删除主要代码如下:if (total<Pi*r0*r0* ,(int)(tota/()+.5),*min[0]/,*max[0]/,*min[1]/,*max[1]/,*min[2]/,*max[2]/;10、All-steps可以一次性实现细胞识别的所有操作步骤设置控制按键的权限,点击update_command_ui ,键入控制条件每步操作时给cellprocess设置不同数值,表示那步进行过,只能进行规定的下步操作,从而在运行过程中放置按键误触导致程序崩溃。
11、扩展:区域选择:建立类向导:OnButtonDown 和OnButtonUp键入代码:在OnDraw中添加下列代码注意:bool 变量m_bDrag要定义在文件头部,定义在会出现第一次区域选择时出现错误。
添加复位按键:点击该键后会重新读取图像(和图像自动打开代码一样)第三部分12、各步骤结果和错误举例①各步骤结果图a.Mark(Red)& MayBe Mark(Blue)maybemark to mark(black red)edge information and edge filtertwovaluefillholesshrinkfindcentercount出现的错误举例:Mousemove 程序中出现问题:1.错误:没有加#include ""头文件2.错误error C2248: 'm_wndStatusBar' : cannot access protected member declared in class 'CMainFrame'需将protected: 和.cpp文件仍然存在解决方案:先保存workspace,然后关闭工程,删除此工程目录中的.ncb文件,重新打开workspace原因:classview显示混乱在类中添加的成员变量和成员函数不能显示出来,即使显示出来了变量或函数,双击后不能跳至正确的位置。