특징 기반 이미지 매칭 알고리즘, 이미지 유사성 매칭 알고리즘

이미지 유사도를 계산하는 알고리즘은 무엇입니까

SIM = Structural SIMilarity(구조적 유사성), 이미지 품질을 평가하는 데 사용되는 방법입니다.

인간의 시각은 영상에서 구조정보를 쉽게 추출할 수 있으므로 두 영상의 구조정보의 유사도를 계산하는 것이 영상의 질을 판단하는 방법으로 활용될 수 있다. 구조적 정보는 밝기 정보를 빼야 하고, 즉 영상의 평균값을 빼야 하고, 둘째, 구조적 정보는 영상의 명암에 영향을 받지 않아야 하므로 영상의 분산이 필요하다. 일반적으로 처리된 두 이미지의 상관계수를 간단히 계산할 수 있지만 밝기 정보와 대비 정보에 의해서도 이미지 품질이 제한됩니다. , 그래서 화질을 계산할 때 구조적 정보를 고려해야 함과 동시에 두 가지의 영향도 고려해야 함 일반적으로 사용되는 계산 방법은 다음과 같으며 여기서 C1, C2 및 C3은 계산 결과의 안정성: 2u(x)u(y) + C1L(X,Y) = -- ---------------------- , u(x ), u(y)는 이미지의 평균값 u(x)^2 + u(y)^2 + C1 2d(x)d(y) + C2C(X,Y) = ------ ---------------,d(x),d(y )는 이미지 d(x)^2 + d(y)^2 + C2 d(x, y) + C3S(X,Y) = ---------------- ------, d(x,y)는 공분산 d(x)d(y) + 이미지 x, 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×L)^2, C3 = C2/2, K1.

Google AI 작성 프로젝트: 신경망 유사 원본

opencv에서 NCC 알고리즘을 사용하여 두 이미지의 유사성 판단을 실현하는 방법

지각 해시 알고리즘(perceptual hash algorithm)의 역할은 각 이미지에 대한 "지문"(지문) 문자열을 생성한 다음 서로 다른 이미지 의 지문을 비교하는 것입니다 . 결과가 가까울수록 이미지가 더 유사합니다.

구현 단계: 1. 크기 축소: 이미지를 8*8 크기, 총 64픽셀로 축소합니다.

이 단계의 기능은 이미지의 세부 사항을 제거하고 구조/명암과 같은 기본 정보만 유지하고 다양한 크기/비율로 인한 이미지 차이를 버리는 것입니다. 64계조 즉, 모두 픽셀에 대해 총 64가지 색상만 있음 3. 평균값 계산: 64개 픽셀 전체의 평균 계조를 계산 4. 픽셀의 계조 비교: 의 계조를 비교 각 픽셀은 평균값을 가지며, 그보다 크거나 같음 평균값은 1로, 평균값 미만은 0으로 기록 5. 해시 값 계산: 이전 단계의 비교 결과를 결합하여 이 이미지의 지문인 64비트 정수를 형성합니다.

모든 이미지가 동일한 순서이면 조합 순서는 중요하지 않습니다 6. 지문을 얻은 후 여러 이미지를 비교하여 64비트에서 몇 비트가 다른지 확인할 수 있습니다.

이론적으로 이것은 "해밍 거리"와 동일합니다(해밍 거리, 정보 이론에서 동일한 길이의 두 문자열 사이의 해밍 거리는 두 문자열의 해당 위치에 있는 서로 다른 문자의 수입니다).

서로 다른 데이터 비트의 수가 5를 초과하지 않으면 두 이미지가 매우 유사하다는 것을 의미하고, 10보다 크면 서로 다른 두 이미지를 의미합니다.

arr2[64]; for (int i = 0; i < 8; i++) {uchar* data1 = (i);uchar* data2 = (i);int tmp = i * 8;for (int j = 0; j < 8; j++) {int tmp1 = tmp + j;arr1[tmp1] = data1[j] / 4 * 4;arr2[tmp1] = data2[j] / 4 * 4;iAvg1 += arr1[tmp1];iAvg2 += arr2[tmp1 ];} } iAvg1 /= 64; iAvg2 /= 64; for (int i = 0; i < 64; i++) {arr1[i] = (arr1[i] >= iAvg1) ? 1 : 0;arr2[i] = (arr2[i] >= iAvg2) ? 1:0; } int iDiffNum = 0; for (int i = 0; i < 64; i++)if (arr1[i] != arr2[i])++iDiffNum; cout。

서둘러 서둘러! 온라인 등에서 이진 이미지 유사성을 찾기 위해 matlab 이미지를 찾으십시오!

이미지 1,2는 RGB 이미지로 m폴더에 위치하며 바이너리 값을 직접 입력하면 im2bw는 필요 없고, pio는 유사도 비율 I1=imread('1.jpg');I2=imread(' 2.jpg') ;I1_bw=im2bw(I1);%%binary I2_bw=im2bw(I2);[h,w]=size(I1_bw);%%이미지의 너비와 높이를 얻습니다. h/wsum=0; for i=1:hfor j=1:w if I1_bw(i,j)==I2_bw(i,j)%% 점별 비교 sum=sum+1; endendendpio=double(sum)/h/w ;.

C#에서 두 그림의 유사성을 판단하는 방법

매우 번거롭고 계산량이 매우 많아 인공 지능 범주에 속합니다. 이 "두 개의 유사한 그림"은 동일한 해상도, 흑백, 단순한 기하학적 도형과 같은 많은 전제 조건을 규정할 수 있습니다. . .

그런 다음 기본 알고리즘을 사용하여 "유사성"을 계산할 수 있습니다. 즉, 위에서 언급한 것처럼 두 사진의 픽셀을 읽은 다음 트래버스하여 그레이스케일 차이를 비교할 수 있습니다.

이를 위한 기성 알고리즘이 많고 많은 웹사이트에서 이 영역에서 계산을 제공하지만(API를 직접 호출할 수 있음) 디지털 "유사성"만 얻을 수 있습니다. 원하는 것이 두 사진의 픽셀 간의 차이라면 이를 달성하기 위한 알고리즘을 찾을 수 있습니다.

참고용으로 이 웹사이트를 살펴보십시오. 이것은 해외에서 비교적 잘 알려진 이미지 처리 웹사이트입니다. 하지만 두 이미지의 크기가 다른 경우에는 어떻게 해야 할까요? 비율이 다르다면? 빈 공간이 있다면? 유색인은 어떻습니까?

따라서 현재 가장 성숙한 프로그래밍 알고리즘은 문자와 숫자를 인식하는 것입니다(예: Google은 사진에서 집 번호와 거리 번호를 인식할 수 있음). 등) 뺨의 높이, 뺨의 넓이와 가늘고 비율), 인간의 눈 기준으로 두 사진이 같은지 완벽하게 비교하기는 매우 어려우며, 성숙함이 없어야 한다. 이 분야의 기술.

C# 그레이스케일 이미지는 유사도 알고리즘을 통해 유사도가 가장 높은 그림을 찾습니다.

FromStream(스트림); } public String GetHash() { 이미지 이미지 = ReduceSize(); Byte[] grayValues ​​= ReduceColor(이미지); 바이트 평균 = CalcAverage(grayValues); String reslut = ComputeBits(grayValues, average); 반환 결과; } // 1단계 : 크기를 8*8로 축소 private Image ReduceSize(int width = 8, int height = 8) { Image image = SourceImg.GetThumbnailImage(width, height, () => { return false; }, ); 반환 이미지; } // 2단계: 색상 줄이기 private Byte[] ReduceColor(Image image) { Bitmap bitMap = new Bitmap(image); Byte[] grayValues ​​= new Byte[image.Width * image.Height]; for(int x = 0; x。키]; for(int x = 0; x。키]; for(int x = 0; x。GetThumbnailImage(너비, 높이, () => { return false; }, ); 반환 이미지; } // 2단계: 색상 줄이기 private Byte[] ReduceColor(Image image) { Bitmap bitMap = new Bitmap(image); Byte[] grayValues ​​= new Byte[image.Width * image.Height]; for(int x = 0; x。GetThumbnailImage(너비, 높이, () => { return false; }, ); 반환 이미지; } // 2단계: 색상 줄이기 private Byte[] ReduceColor(Image image) { Bitmap bitMap = new Bitmap(image); Byte[] grayValues ​​= new Byte[image.Width * image.Height]; for(int x = 0; x。

Baidu 지도 인식 원리?

Baidu 이미지 인식의 원리: 이러한 종류의 Baidu에 대해 Google의 이미지 검색은 일반적으로 알고리즘에 의해 구현되며 일반적으로 세 단계: 1. 대상 이미지의 특징 추출 이미지를 설명하는 많은 알고리즘이 있으며 가장 많이 사용되는 것은 : SIFT 디스크립터, 지문 알고리즘 함수, 번들링 기능 알고리즘, 해시 함수(hash function) 등

이미지 특징을 추출하기 위한 이미지 로컬 N차 모멘트 방법과 같이 다른 이미지에 따라 다른 알고리즘을 설계할 수도 있습니다. 2. 이미지 특징 정보를 인코딩하고 많은 수의 이미지를 룩업 테이블로 인코딩합니다.

대상 이미지는 해상도가 큰 이미지를 다운샘플링(down-sampling)할 수 있으며, 계산량을 줄여서 이미지 특징 추출 및 부호화 과정을 진행할 수 있다.

3. 유사도 일치 작업: 대상 이미지의 코딩 값을 사용하여 이미지 검색 엔진의 이미지 데이터베이스에서 전체 또는 로컬 유사도 계산을 수행하고 필요한 견고성에 따라 임계값을 설정한 다음 높은 유사도를 사용하여 사진을 예약합니다. ; 결국에는 여전히 특징 감지 알고리즘을 사용해야 하는 가장 일치하는 사진을 필터링하는 단계가 있어야 합니다.

이러한 각 단계에는 많은 알고리즘 연구, 수학에 대한 연구, 통계, 이미지 코딩, 신호 처리 및 기타 이론이 있습니다.

컴퓨터 이미지 처리 SSD 및 SAD는 무엇을 의미합니까?

SSD(Sum of Squared Differences)는 추정 값과 추정 물체 간 차이의 제곱의 합입니다. 일반적으로 평균 제곱 오차라고도 합니다.

절대차의 합(Sum of Absolute Differences)인 SAD는 차이의 절대값의 합입니다. 이 알고리즘은 이미지 블록 매칭에 자주 사용되며 각 픽셀의 해당 값 차이의 절대값을 합산하여 두 이미지 블록의 유사도를 평가합니다.

이 알고리즘은 매우 빠르지만 정확하지 않으며 일반적으로 다단계 처리의 예비 선별에 사용됨을 알 수 있습니다.

 

Supongo que te gusta

Origin blog.csdn.net/aifamao6/article/details/127443753
Recomendado
Clasificación