图像预处理之:对比度增强
这次主要针对真彩色图像做的增强,将RGB域转为HSI域,增强I分量,达到增强效果,效果如下:代码如下: #define MIN(a, b) ((a) < (b) ? (a) : (b)) #define MAX(a, b) ((a) > (b) ? (a) : (b)) #define EPS 1e-16 /// 彩色空间转换 bool RGB2HSI(uchar *imgIn, int nchannels, double *Hvector, double *Svector, double *Ivector, int width, int height) { if (imgIn == NULL || nchannels != 3) { return false; } int index = 0; for (int i = 0; i < width * height * nchannels; i = i + 3) { ...
“李妈妈”牛肉面
在李开复的自传中看到李妈妈牛肉面,当时第一时间就做了,今天大家看看我做的牛肉面吧。 牛肉面卤包做法:卤汁料包(足够用20次:麻椒2斤 香叶30g 八角150g 山奈150g 桂皮60g 白豆蔻100g 罗汉果2只,香砂120g 香菜籽60g 草果120g 丁香30g 孜然30g良姜120g 白芪50g 陈皮50g 碧波30g 小茴香90g 砂仁。 同时希望李开复老师能够安心养病,早日康复。
vs2008编译程序在没有vs环境上运行
有的时候我们编译的dll或exe在一台没有安装vs的电脑上,无法运行,往往提示缺少必要的dll文件,这是因为我们在编译的时候选择的runtime libray 不一致导致的, MT(Multi-threaded):多线程版本 MTd(Multi-threaded debug):多线程调试版本 MD(Multi-threaded Dll):多线程Dll版本 MDd(Multi-threaded debug debug):多线程调试Dll版本 如果需要脱离vs环境运行,需要选择第一个和第二个,但是编译出来的文件会比较大
svn 图标不正常解决之道
因为公司文件加密,加密文件图标加上dropbox图标,svn图标,几个图标之间起了冲突,一个用了另外一个又不能用,在网上收索了相应解决之道:参考,其实只要重命名你需要显示的图标靠前就行,可为啥只有11个呢,不能更多呢?
vs2008 无法智能提示或转到定义
vs2008无法智能提示或无法正确转到定义,可将vs的环境重置解决,命令如下: devenv.exe /setup /resetuserdata /resetsettings
图像对比度增强之-imadjust
图像增强,对比度拉伸时常用的一个函数,在matlab中,也有对应的函数,既imadjust,但是在实际应用中,效果并不是很理想,在下文的讨论中,就涉及到如何自动确定高低阈值,当然了这里只是针对简单的场景。如下图所示,有整体偏亮及偏暗的图 图例1######图例2### 对于这种二值划分的图像,采用图像分割的方法,分别确定两个区域的平均灰度,作为imadjust的阈值,可以达到较好的效果。如下图所示 ###图例1-Matlab默认值输出######图例1-自动确定阈值输出######图例2-Matlab默认值输出######图例2-自动确定阈值输出### 从上面的图例中不难看出,自动确认的阈值在对比度提升上更加明显,对比度更大
任意点到斜椭圆最小距离
最近由于项目需求,要计算任意点到斜椭圆的距离,方程相信大家都知道怎么建立,但是它是一个4次方程,matlab都很不好解,写到程序中也很难,搜了很多帖子,都是只给方程,不给解的,其实原理大家都知道,如何用程序解才是大家关心的,所以一直都没有找到合理的答案,关键时刻还是google给力,度娘一般的东西还撮合,可学术性的、英文的确是一塌糊涂,网络上收集到这样一篇论文,我也是用这个算法最终解决我的问题的,它只使用与标准方程,斜椭圆只是多了平移和旋转操作而已。 ###第一象限中的点到标准椭圆的距离### double DistancePointEllipseSpecial(const double e[2], const double y[2], double x[2]) { double distance; if (y[1] > 0) { if (y[0] > 0) { // bisect to compute the root of F(t) for t >=...
灰度共生矩阵(GLCM)
共生矩阵用两个位置的象素的联合概率密度来定义,它不仅反映亮度的分布特性,也反映具有同样亮度或接近亮度的象素之间的位置分布特性,是有关图象亮度变化的二阶统计特征。它是定义一组纹理特征的基础。 一幅图象的灰度共生矩阵能反映出图象灰度关于方向、相邻间隔、变化幅度的综合信息,它是分析图象的局部模式和它们排列规则的基础。 设f(x,y)为一幅二维数字图象,其大小为M×N,灰度级别为Ng,则满足一定空间关系的灰度共生矩阵为 P(i,j)=#{(x1,y1),(x2,y2)∈M×N|f(x1,y1)=i,f(x2,y2)=j} 其中#(x)表示集合x中的元素个数,显然P为Ng×Ng的矩阵,若(x1,y1)与(x2,y2)间距离为d,两者与坐标横轴的夹角为θ,则可以得到各种间距及角度的灰度共生矩阵P(i,j,d,θ)。 纹理特征提取的一种有效方法是以灰度级的空间相关矩阵即共生矩阵为基础的[7],因为图像中相距(Δx,Δy)的两个灰度像素同时出现的联合频率分布可以用灰度共生矩阵来表示。若将图像的灰度级定为N级,那么共生矩阵为N×N矩阵,可表示为M(Δx,Δy)(h,k),其中位于(h,k)的元素m...
Gray-level Co-occurrence Matrix 灰度共生矩阵
灰度共生矩阵就是一种通过研究灰度的空间相关特性来描述纹理的常用方法。灰度共生矩阵是对图像上保持某距离的两象素分别具有某灰度的状况进行统计得到的。 取图像(N×N)中任意一点(x,y)及偏离它的另一点(x+a,y+b),设该点对的灰度值为(g1,g2)。令点(x,y)在整个画面上移动,则会得到各种(g1,g2)。值,设灰度值的级数为,则(g1,g2)。的组合共有 k2种。对于整个画面,统计出每一种(g1,g2)值出现的次数,然后排列成一个方阵,在用(g1,g2)出现的总次数将它们归一化为出现的概率P(g1,g2),这样的方阵称为灰度共生矩阵。距离差分值(a,b)取不同的数值组合,可以得到不同情况下的联合概率矩阵。(a,b)取值要根据纹理周期分布的特性来选择,对于较细的纹理,选取(1,0)、(1,1)、(2,0)等小的差分值。 为了能更直观地以共生矩阵描述纹理状况,从共生矩阵导出一些反映矩阵状况的参数,典型的有以下几种: 能量:是灰度共生矩阵元素值的平方和,所以也称能量,反映了图像灰度分布均匀程度和纹理粗细度。如果共生矩阵的所有值均相等,则ASM值小;相反, 如果其中一些值大而其...
使用MATLAB进行USB摄像头的编程
1、查询USB2.0Camera 的具体参数(imaqhwinfo) 2、创建视频输入对象(videoinput) 3、图像预览和显示(preview、stoppreview、closepreview和image) 4、获取视频图像(getsnapshot) 5、图像获取设备的获取和设置(get和set) 6、关闭视频对象(delete) 在正式讲解之前,我想说明下几个个在图像获取工具箱中的术语: 图像获取设备:比如摄像头、扫描仪 图像获取适配器:主要的目的是通过驱动在Matlab和图像获取设备之间传递信息 ROI:region-of-interest 感兴趣区域 在说说几个常用的函数,我们这里只是说明它的作用,具体如何使用参考帮助系统 getselectedsource imaqfind isvalid peekdata getdata imaqmontage 给我们一个摄像头我们必须知道他的相关参数,才可能进行我们的编程下。当然我们可以查询商家手册,但是那个累不累人呀。 Matlab的图像获取工具箱为我提供了imaqhwinfo(),来获取PC上以安装的图像获取硬件信息 没...
