摘要:
jpg压缩原理可以参考这篇文章http://hi.baidu.com/tiandsp/item/f5a2dcde6ef1405bd73aae41,我很早以前转的一篇文章。 没有使用libjpeg的压缩代码可以看看这篇文章http://hi.baidu.com/tiandsp/item/9b5843c58a3b4474cfd4f841,也是我很早以前转的。 这次使用libjpeg库压缩和上一篇的解压正好对应起来,有好多函数名称我都是对称的起的,所以结合起来看效果更好。 和上一篇一样,只能处理24位和8位的图像。 代码如下:#include <iostream>#include < 阅读全文
摘要:
还是关于图像格式上的东西。使用了libjpeg库将jpeg图像转换到bmp格式。解压原理还是相对复杂的,将来有机会说不定会详细介绍。这里只是库的使用而已。 首先需要下载libjpeg库,网址在这里:http://www.ijg.org/ 然后需要配置环境,我是在windows下用vs2010搞的,编译库可以参考这篇文章。编译出jpeg.lib就可以了。当然实际编程还需要相应的头文件,头文件在下载的文件中。 如果不想编译就在这下载吧:http://vdisk.weibo.com/s/jpiMs 下面是相应的例程,只能将24位彩色图和8位深度图的jpg转换到bmp。#include <... 阅读全文
摘要:
自从上一次写了bmp文件格式分析,后来是准备马上就写程序了,谁知后来就忘了,昨天突然想起来就将其写了出来。 程序的功能是将彩色图转灰度图,中间彩色和灰度的文件header都用到了,程序的流程我想我写的还是比较清楚的。没有用到Windows下的某些函数,在Linux下应该也能运行。#include <iostream>#include <fstream>using namespace std;#pragma pack(2) //两字节对齐,否则bmp_fileheader会占16Bytestruct bmp_fileheader{ unsigned short b... 阅读全文
摘要:
做图像处理,最耗时间的运算应该就是卷积运算那一步了。以后如果有机会在用c++做图像处理的项目的话,那么这个卷积部分还是要优化的。Matlab因为是验证算法,其实是没必要优化的。所以我就把卷积这一部分单独列出一个函数,用汇编实现了。我可是电子工程出身,汇编当然不在话下。 函数是用汇编写的,用的是c++内嵌asm汇编,相同功能的c++代码也实现了,不过注释掉了,去掉注释能得到相同的结果。 读和显示图像用了opencv函数库,话说上一个项目结束之后好像就没怎么用过这个库了,毕竟,单单调用库中的函数是没办法真正理解原理的。#include <iostream>#include " 阅读全文
摘要:
还是编程珠玑上的东西,作者对最初的算法稍微优化了一下。#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; //... 阅读全文
摘要:
好久没看书了,随便拿来《编程珠玑》翻到第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... 阅读全文
摘要:
注:新方法移步这里 之所以要加1是因为这个还没有做完,这个只是按照自己的想法实现的,结果。。。果然是不行啊。 photoshop中的径向模糊算法我也不清楚,不过下面的对话框大致可以让人猜到一些: 看那个小方框就可以了,我感觉是photoshop只在黑色像素对应的地方进行模糊,其他的地方则不处理。我暂 阅读全文
摘要:
在读入摄像头数据的时候,按下ctrl+x键,可以截取图像,就是这样一个功能。功能不多,但很有用。main.mclear all;close all;clc;global m; obj=videoinput('winvideo',1,'YUY2_320x240'); h1=preview(obj); %预览视频,同时获取句柄 h2=figure('KeyPressFcn',@keyPressFigure); %新建显示图像figure,同时获取句柄while ishandle(h1) && ishandl... 阅读全文
摘要:
网上好多文章都好坑爹,配置麻烦死了,一点也不简洁,我这里给一个最简洁并且很好用的版本。clear all;close all;clc;obj=videoinput('winvideo',1,'YUY2_320x240'); %一般的家用摄像头第三个参数这样就可以,不能运行直接去掉第三个参数也可以h1=preview(obj); %预览视频,同时获取句柄 h2=figure(2); %新建显示图像figure,同时获取句柄while ishandle(h1) && ishandle(h2) ... 阅读全文
摘要:
做meanshift物体跟踪的时候中间有一步叫做直方图反向投影,所以我就先实现了这样一个步骤。 直方图反向投影说白了就是模板匹配,给定一个较小的目标模板,然后再逐个遍历原图像和模板图像相同的图像块的,对比图像块和模板的直方图,然后把比较结果存入一个新的图像中,新图像中的全局极值就是模板在原图像中所在 阅读全文