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)提供對於該圖像中的邊緣位置的指示。
早期的有邊緣運算元法、曲線擬合法、模板匹配法、門限化法。近年來又有許多新的邊緣檢測的演算法:小波變換、小波包的邊緣檢測等,基於數學形態學、模糊理論和神經網路的邊緣檢測演算法等。