上一页 1 ··· 50 51 52 53 54 55 56 57 58 ··· 75 下一页
摘要: 我几乎完全就是照着WIKI百科上的算法实现的,不过是用Matlab而已。使用了两步法进行标记,一步法我还没怎么看。两步法中第二步是比较麻烦的,其中用到了不相交集合的一些理论,尤其是不相交集合森林,我这里的find_set函数就是参考《算法导论》311页的算法写的。如果用c++写,也许需要自己构造数据 阅读全文
posted @ 2012-12-06 14:24 Dsp Tian 阅读(32256) 评论(6) 推荐(2) 编辑
摘要: 这个过去用就写过,这次正好有人问这个算法,所以在这里又把C代码改为了matlab了。 霍夫变换是把原图像中的直线上的每一个点转换到参数空间对应的曲线上,由于每一个点对应一条曲线,因此在参数空间中所有曲线会相交到一个点,形成一个最值。因此原图寻找直线斜率的问题就变成了参数空间寻找最值的问题了。 代码如 阅读全文
posted @ 2012-12-04 14:36 Dsp Tian 阅读(10549) 评论(2) 推荐(0) 编辑
摘要: 有好多算法早就想实现了,可是总有各种原因没有实现,这个双线性插值旋转图像就是其中之一。 之前写过最邻近插值旋转图像,传送门。结合着看效果会很好。 clear all; close all; clc; jiaodu=45; %要旋转的角度,旋转方向为顺时针 img=imread('lena.jpg') 阅读全文
posted @ 2012-12-03 21:09 Dsp Tian 阅读(24270) 评论(1) 推荐(2) 编辑
摘要: 半年前写过matlab最邻近插值的图像缩放,没怎么考虑边界问题。更早之前用Opencv写过双线性插值图像放大,不过写的比较混乱。所以这里用matlab重新再清楚的写一遍。 close all; clear all; clc; m=1.8; %放大或缩小的高度 n=2.3; %放大或缩小的宽度 img 阅读全文
posted @ 2012-12-03 19:40 Dsp Tian 阅读(21255) 评论(3) 推荐(0) 编辑
摘要: jpg压缩原理可以参考这篇文章http://hi.baidu.com/tiandsp/item/f5a2dcde6ef1405bd73aae41,我很早以前转的一篇文章。 没有使用libjpeg的压缩代码可以看看这篇文章http://hi.baidu.com/tiandsp/item/9b5843c58a3b4474cfd4f841,也是我很早以前转的。 这次使用libjpeg库压缩和上一篇的解压正好对应起来,有好多函数名称我都是对称的起的,所以结合起来看效果更好。 和上一篇一样,只能处理24位和8位的图像。 代码如下:#include <iostream>#include < 阅读全文
posted @ 2012-12-03 14:25 Dsp Tian 阅读(7264) 评论(3) 推荐(0) 编辑
摘要: 还是关于图像格式上的东西。使用了libjpeg库将jpeg图像转换到bmp格式。解压原理还是相对复杂的,将来有机会说不定会详细介绍。这里只是库的使用而已。 首先需要下载libjpeg库,网址在这里:http://www.ijg.org/ 然后需要配置环境,我是在windows下用vs2010搞的,编译库可以参考这篇文章。编译出jpeg.lib就可以了。当然实际编程还需要相应的头文件,头文件在下载的文件中。 如果不想编译就在这下载吧:http://vdisk.weibo.com/s/jpiMs 下面是相应的例程,只能将24位彩色图和8位深度图的jpg转换到bmp。#include <... 阅读全文
posted @ 2012-11-30 20:17 Dsp Tian 阅读(15014) 评论(6) 推荐(1) 编辑
摘要: 自从上一次写了bmp文件格式分析,后来是准备马上就写程序了,谁知后来就忘了,昨天突然想起来就将其写了出来。 程序的功能是将彩色图转灰度图,中间彩色和灰度的文件header都用到了,程序的流程我想我写的还是比较清楚的。没有用到Windows下的某些函数,在Linux下应该也能运行。#include <iostream>#include <fstream>using namespace std;#pragma pack(2) //两字节对齐,否则bmp_fileheader会占16Bytestruct bmp_fileheader{ unsigned short b... 阅读全文
posted @ 2012-11-30 10:24 Dsp Tian 阅读(11915) 评论(0) 推荐(0) 编辑
摘要: 做图像处理,最耗时间的运算应该就是卷积运算那一步了。以后如果有机会在用c++做图像处理的项目的话,那么这个卷积部分还是要优化的。Matlab因为是验证算法,其实是没必要优化的。所以我就把卷积这一部分单独列出一个函数,用汇编实现了。我可是电子工程出身,汇编当然不在话下。 函数是用汇编写的,用的是c++内嵌asm汇编,相同功能的c++代码也实现了,不过注释掉了,去掉注释能得到相同的结果。 读和显示图像用了opencv函数库,话说上一个项目结束之后好像就没怎么用过这个库了,毕竟,单单调用库中的函数是没办法真正理解原理的。#include <iostream>#include " 阅读全文
posted @ 2012-11-28 21:39 Dsp Tian 阅读(3596) 评论(0) 推荐(0) 编辑
摘要: 还是编程珠玑上的东西,作者对最初的算法稍微优化了一下。#include <iostream>#include <algorithm>#define N 10using namespace std;int binary_search(int *x,int n,int t) //x为要查找的数组,n为数组的大小,t为要找的值,找到则返回值的位置,否则返回-1{ int l=-1; //数组下界 int u=n; //数组上界 int p; //查找的值在数组中的位置 int m; //... 阅读全文
posted @ 2012-11-27 20:54 Dsp Tian 阅读(611) 评论(0) 推荐(0) 编辑
摘要: 好久没看书了,随便拿来《编程珠玑》翻到第8章,介绍了一个叫求数组中最大子数组的算法,是线性的时间复杂度。 问题描述是具有n个浮点数的向量x,求向量中任何连续子向量的最大和。#include <iostream>using namespace std;int main(){ int x[10]={31,-41,59,26,-53,58,97,-93,-23,84}; int maxsofar=0; int maxendinghere=0; for (int i=0;i<10;i++) { maxendinghere=max(maxendinghe... 阅读全文
posted @ 2012-11-27 19:48 Dsp Tian 阅读(542) 评论(1) 推荐(0) 编辑
上一页 1 ··· 50 51 52 53 54 55 56 57 58 ··· 75 下一页