毕业论文的点点滴滴(一)

      本人本科小菜一个,南方某山中大学就读,今年大四,临近毕业,哎,论文虐我千百遍,我对论文如初恋,最近都在死理拼命赶,但是无奈结果还是那样,出不来,于是乎,想在这里愤青一把。

    毕业论文做的是交通图像处理题目---基于视频图像处理的交通标线识别,其实一开始想做电动车信息采集系统的开发的,而且那个系统我在大二大三参加本田节能竞技大赛的时候有实际开发过,有了差不多两年的积累,但是后来想到要去广汽,那么就必须学点高端大气上档次的东西啊,于是乎直接扭头,奔向本院的老师,学习图像处理相关知识。结缘图像处理是在大三的下一个学期,那个时候很多人都准备忙着保研,出国,找工作。对于选修课大伙都是兴趣不高,认为修个学分就可以了,于是在修读图像处理这门课程的时候,班里的学习氛围不高,本来选修的人数就少得可怜,但是每次居然去的还只有那么几个,虽说这样子,但是我还是还认真地修读了这门课程,而且收益匪浅啊。

    选择了图像处理,现在想想感觉走到了一个不归路,╮(╯▽╰)╭,因为这条路远远没有自己想象的那么容易,实则坎坷啊。

   路漫漫其修远兮,吾将上下而求索!

  每次遇到困难,心里总是用这一句话来勉励自己,哎,谁叫自己选了呢!既然选择了,就应该义无反顾地往前走。

  还是回归到主题了吧,写论文。。。。。。。。。。。。。。。

   图像处理的前提,图像预处理,一开始就查找了很多关于图像预处理的论文,包括图像灰度化、图像增强、直方图均衡化等一些相关论文,其中基于模糊集理论的图像直方图均衡化和基于RGB模型的直方图均衡化效果还是比较理想的。

  基于RGB模型的直方图均衡化程序如下:

   private void button10_Click(object sender, EventArgs e)            //基于RGB模型的直方图均衡化
        {
            myTimer.ClearTimer();
            myTimer.Start();    //开始计算时间
            if (curBitmap != null)
            {
                    
                
                    Rectangle rect = new Rectangle(0, 0, curBitmap.Width, curBitmap.Height);
                    System.Drawing.Imaging.BitmapData bmpData = curBitmap.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite, curBitmap.PixelFormat);
                    IntPtr ptr = bmpData.Scan0;
                    int bytes = curBitmap.Width * curBitmap.Height;
                    byte[] rgbValues = new byte[bytes * 3];
                    System.Runtime.InteropServices.Marshal.Copy(ptr, rgbValues, 0, bytes * 3);

             
                    double[] hue = new double[bytes];
                    double[] sat = new double[bytes];
                    byte[] inten = new byte[bytes];
                    double r, g, b;

                        for (int i = 0; i < bytes; i++)
                        {
                            r = rgbValues[i * 3 + 2];
                            g = rgbValues[i * 3 + 1];
                            b = rgbValues[i * 3];

                            double theta = Math.Acos(0.5 * ((r - g) + (r - b)) / Math.Sqrt((r - g) * (r - g) + (r - b) * (g - b) + 1)) / (2 * Math.PI);

                            hue[i] = ((b <= g) ? theta : (1 - theta));

                            sat[i] = 1.0 - 3.0 * Math.Min(Math.Min(r, g), b) / (r + g + b + 1);

                            inten[i] = (byte)((r + g + b) / 3);
                        }

                        inten = equalization(inten);

                        for (int i = 0; i < bytes; i++)
                        {
                            r = rgbValues[i * 3 + 2];
                            g = rgbValues[i * 3 + 1];
                            b = rgbValues[i * 3];

                            hue[i] = hue[i] * 2 * Math.PI;
                            if (hue[i] >= 0 && hue[i] < 2 * Math.PI / 3)
                            {
                                b = inten[i] * (1 - sat[i]);
                                r = inten[i] * (1 + sat[i] * Math.Cos(hue[i]) / Math.Cos(Math.PI / 3 - hue[i]));
                                g = 3 * inten[i] - (r + b);
                            }
                            else if (hue[i] >= 2 * Math.PI / 3 && hue[i] < 4 * Math.PI / 3)
                            {
                                r = inten[i] * (1 - sat[i]);
                                g = inten[i] * (1 + sat[i] * Math.Cos(hue[i] - 2 * Math.PI / 3) / Math.Cos(Math.PI - hue[i]));
                                b = 3 * inten[i] - (r + g);
                            }
                            else //if (h >= 4 * Math.PI / 3 && h <= 2 * Math.PI)
                            {
                                g = inten[i] * (1 - sat[i]);
                                b = inten[i] * (1 + sat[i] * Math.Cos(hue[i] - 4 * Math.PI / 3) / Math.Cos(5 * Math.PI / 3 - hue[i]));
                                r = 3 * inten[i] - (g + b);
                            }
                            if (r > 255)
                                r = 255;
                            if (g > 255)
                                g = 255;
                            if (b > 255)
                                b = 255;

                            rgbValues[i * 3 + 2] = (byte)r;
                            rgbValues[i * 3 + 1] = (byte)g;
                            rgbValues[i * 3] = (byte)b;
                        }
                 

                    System.Runtime.InteropServices.Marshal.Copy(rgbValues, 0, ptr, bytes * 3);
                    curBitmap.UnlockBits(bmpData);

                    myTimer.Stop();
                    textBox1.Text = myTimer.Duration.ToString("####.##"); 
                    Invalidate();
                
            }
        }
        均衡前后对比,效果非常明显,

 

后来,在进行边缘检测的时候,我发现基于RGB模型的sobel处理起来,可以把灰度图化-直方图均衡化--中值滤波三个步骤省了,是在是非常不可思议。

现在做到Hough直线检测那块了,但是Hough变换思想有点混乱,所以还没有编程实现~~~

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值