1. 图像视频雪花噪点的检测算法实现,有大神有代码的吗
主要还是像素检测。阈值指定。
1:对于一个像素获取其周围的像素,均值加权之后和现有的像素值进行比较,
2:计算百分比差异,也可以直接用色差。阈值指定可以通过define全局变量指定值,修改define达到修改阈值的效果。
这个阈值肯定是要你自己指定,视情况修改就好了。
或者统计出全像素的色差值和,算出平均之后取差异大的。
2. 图像处理中,一张图片用什么算法检测它旋转了多少角度呢
你要想要这个角度的数值,转之前就应该通过输入数值来实现。否则你就画个水平的参照物,来估计一下了。
3. 计算图像相似度的算法有哪些
SIM = Structural SIMilarity(结构相似性),这是一种用来评测图像质量的一种方法。由于人类视觉很容易从图像中抽取出结构信息,因此计算两幅图像结构信息的相似性就可以用来作为一种检测图像质量的好坏.
首先结构信息不应该受到照明的影响,因此在计算结构信息时需要去掉亮度信息,即需要减掉图像的均值;其次结构信息不应该受到图像对比度的影响,因此计算结构信息时需要归一化图像的方差;最后我们就可以对图像求取结构信息了,通常我们可以简单地计算一下这两幅处理后的图像的相关系数.
然而图像质量的好坏也受到亮度信息和对比度信息的制约,因此在计算图像质量好坏时,在考虑结构信息的同时也需要考虑这两者的影响.通常使用的计算方法如下,其中C1,C2,C3用来增加计算结果的稳定性:
2u(x)u(y) + C1
L(X,Y) = ------------------------ ,u(x), u(y)为图像的均值
u(x)^2 + u(y)^2 + C1
2d(x)d(y) + C2
C(X,Y) = ------------------------,d(x),d(y)为图像的方差
d(x)^2 + d(y)^2 + C2
d(x,y) + C3
S(X,Y) = ----------------------,d(x,y)为图像x,y的协方差
d(x)d(y) + C3
而图像质量Q = [L(X,Y)^a] x [C(X,Y)^b] x [S(X,Y)^c],其中a,b,c分别用来控制三个要素的重要性,为了计算方便可以均选择为1,C1,C2,C3为比较小的数值,通常C1=(K1 x L)^2, C2=(K2 xL)^2, C3 = C2/2, K1 << 1, K2 << 1, L为像素的最大值(通常为255).
希望对你能有所帮助。
4. 如何利用opencv实现彩色图像边缘检测算法
在opencv中显示边缘检测很简单,只需调用一个cvCanny函数,其使用的是Canny算法来实现对图像的边缘检测.
函数原型为:
void cvCanny( const CvArr* image,CvArr* edges,double threshold1,double threshold2, int aperture_size=3 );
第一个参数为待检测的图像,注意一点,其必须是灰度图.
第二个参数为输出的边缘图,其也是一个灰度图.
后三个参数与Canny算法直接相关,threshold1和threshold2 当中的小阈值用来控制边缘连接,大的阈值用来控制强边缘的初始分割,aperture_size算子内核大小,可以去看看Canny算法.
从彩色图到灰度图需要使用到cvCvtColor函数,其接受三个参数,第一为输入,第二为输出,第三个为转换的标识,我们这边是RGB到GRAY,使用的是CV_RGB2GRAY.
参考demo代码如下:
#include <iostream>
#include <string>
#include <sstream>
#include <opencv/cv.h>
#include <opencv/highgui.h>
using namespace std;
int String2int(const string& str_)
{
int _nre = 0;
stringstream _ss;
_ss << str_;
_ss >> _nre;
return _nre;
}
void DoCanny(const string& strFileName_)
{
//原彩色图片
IplImage* _pIplImageIn = cvLoadImage(strFileName_.data());
if (_pIplImageIn == NULL)
{
return;
}
//彩色图片转换成灰度图放置的图片
IplImage* _pIplImageCanny = cvCreateImage(cvGetSize(_pIplImageIn), _pIplImageIn->depth, 1);
cvCvtColor(_pIplImageIn, _pIplImageCanny, CV_RGB2GRAY);//CV_RGB2GRAY将rgb图转成灰度图
//只有边缘路径的图片
IplImage* _pIplImageOut = cvCreateImage(cvGetSize(_pIplImageIn), IPL_DEPTH_8U, 1);
//边缘检测只能作用于灰度图
if (_pIplImageCanny->nChannels != 1)
{
return;
}
//边缘检测操作
cvCanny(_pIplImageCanny, _pIplImageOut, 1, 110, 3);
cvNamedWindow("Src");
cvShowImage("Src", _pIplImageIn);
cvNamedWindow("Canny");
cvShowImage("Canny", _pIplImageOut);
cvWaitKey(0);
cvReleaseImage(&_pIplImageIn);
cvReleaseImage(&_pIplImageCanny);
cvReleaseImage(&_pIplImageOut);
cvDestroyWindow("Src");
cvDestroyWindow("Canny");
}
int main(int argc, char* argv[])
{
if (argc < 2)
{
cout << "You should give the filename of picture!" << endl;
return -1;
}
DoCanny(argv[1]);
return 0;
}
5. 图像识别的算法
图片识别是一个很大的领域,识别也要分很多场景的,有的识别纹理、有的识别颜色、有的识别大小等,都不一样的。识别之前也有先进行聚类和分类的。
6. 图像识别算法
图像虽好,盘子太大啊。 以前一直对用的算法不太满意,前天晚上居然发现以前算法里面的一个错误。可惜这是我最得意自认为最完美的算法,结果盯着看了十来个小时也没有发现算法的漏 洞,但结果就是不对。最终还是没有找出自己算法的bug,无奈之下换了一个很简单的算法,虽然速度慢不那么精确但基本够用-_- show一下我的处理结果,嘿嘿。基本驱除所有的其他区域,真是干净啊。识别率也有快100%了。并且不需要用户调整任何参数。我就非常暴力地隐藏了所有参数,鲁棒性似乎还很高。不管了,用户说要傻瓜化的,这下够傻瓜了。 目的就是识别我贴在电梯限速器试验台上的四个标志,求四个标志之间连线的锐角(夹角随着速度而变化),目的就是求出张角随速度的变化规律。 限速器在以一定的加速度旋转,图像是通过旋转编码器的脉冲控制外触发来进行图像采集的。最快大约200fps。限速器节圆速度大约最快2m/s
7. 基于图像检测的aoi系统有几种算法
矢量分析和图像对比是最常用最成熟的两种算法.
8. 图像识别算法都有哪些
图像识别,是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对像的技术。一般工业使用中,采用工业相机拍摄图片,然后再利用软件根据图片灰阶差做进一步识别处理,图像识别软件国外代表的有康耐视等,国内代表的有图智能等。另外在地理学中指将遥感图像进行分类的技术。
9. 如何理解图像的边缘常用的边缘检测算法有哪些
图像的边缘检测是一种定位二维或三维图像(特别是医学图像)中的对象的边缘的系统。通过输入端(310)接收表示该图像的各元素值的数据元素集。
该数据集被存储在存储装置(320)中。处理器(340)确定该图像中的对象的边缘。该处理器计算所述数据元素的至少一阶和/或二阶导数,并且计算该图像的等照度线曲率,所述曲率由κ标识。
该处理器还确定校正因数α,该校正因数α对于由对象的曲率和/或所述数据的模糊造成的边缘错位进行校正。该校正因数α取决于所述等照度线曲率κ。然后,该处理器确定取决于所计算出的导数和所述等照度线曲率的算子的过零点。
该系统的输出端(330)提供对于该图像中的边缘位置的指示。
早期的有边缘算子法、曲线拟合法、模板匹配法、门限化法。近年来又有许多新的边缘检测的算法:小波变换、小波包的边缘检测等,基于数学形态学、模糊理论和神经网络的边缘检测算法等。