计算特征矩阵及哈希值(含OpenCV代码)
生活随笔
收集整理的這篇文章主要介紹了
计算特征矩阵及哈希值(含OpenCV代码)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
將簡(jiǎn)化色彩后的特征圖像中每個(gè)像素依次與當(dāng)前圖像像素平均值進(jìn)行比較
程序代碼如下:
#include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <stdio.h>using namespace cv;int main() {Mat srcImage = imread("1.jpg");int mm=8, nn=8;//mm,nn為縮小后圖像的大小。int cc=64; //cc為圖像簡(jiǎn)化色彩后的灰度級(jí)數(shù)。int t[8 * 8];namedWindow("原圖");imshow("原圖", srcImage);cvtColor(srcImage, srcImage, CV_BGR2GRAY); //圖像化為灰度namedWindow("灰度原圖");imshow("灰度原圖", srcImage);cv::Size dsize = Size(mm, nn);cv::resize(srcImage, srcImage,dsize);namedWindow("灰度縮小");imshow("灰度縮小", srcImage);Mat Feature(mm, nn, CV_32SC1, Scalar::all(0));int i, j;int M = srcImage.rows;int N = srcImage.cols;for (i = 0; i<M; i++)for (j = 0; j<N; j++){Feature.at<int>(i / (M / mm), j / (N / nn)) = Feature.at<int>(i / (M / mm), j / (N / nn)) + srcImage.at<uchar>(i, j);// Feature.at<uchar>(i/(M/8),j/(N/8))+=m.at<uchar>(i,j);}//測(cè)試:看看縮小后,圖像里面的每個(gè)像素值是多少:for(i=0;i<mm;i++)for (j = 0; j < nn; j++)printf_s("縮小后,圖像里面的每個(gè)像素值(%d,%d)%d \n", mm, nn, Feature.at<int>(i, j));printf_s("end\n");//簡(jiǎn)化色彩。當(dāng)前灰度級(jí)為8位,即256色,將其處理為cc色。//這里設(shè)置cc=64for (i = 0; i<mm; i++)for (j = 0; j<nn; j++)Feature.at<int>(i, j) /= (256 / cc);//測(cè)試:看看簡(jiǎn)化色彩后,圖像內(nèi)里面的每個(gè)像素值是多少:for(i=0;i<mm;i++)for (j = 0; j < nn; j++)printf_s("簡(jiǎn)化色彩后,圖像內(nèi)里面的每個(gè)像素值是多少(%d,%d):%d \n", mm, nn, Feature.at<int>(i, j));//第3步:計(jì)算圖像的平均值。double sum, aver;sum = 0;for (i = 0; i<mm; i++)for (j = 0; j<nn; j++)sum += Feature.at<int>(i, j);aver = sum / (mm*nn);printf_s("sum=%lf,aver=%lf",sum,aver);//第4步:計(jì)算像素值與平均值大小關(guān)系。同時(shí)得到特征矩陣FeatureResult,并返回。int flag = 0;int FeatureResult[8 * 8] = {0};for (i = 0; i<mm; i++)for (j = 0; j<nn; j++)if (Feature.at<int>(i, j)>aver)FeatureResult[flag++] = 1;elseFeatureResult[flag++] = 0;printf_s("\n特征矩陣:\n");for (i = 0; i < mm*nn; i++){printf_s("%d ", FeatureResult[i]);if (i % 7 == 0)printf_s("\n");}printf("\n");waitKey();return 0; }程序運(yùn)行結(jié)構(gòu)如下:
然后關(guān)于哈希值,如下所示:
總結(jié)
以上是生活随笔為你收集整理的计算特征矩阵及哈希值(含OpenCV代码)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数据库原理概述
- 下一篇: flexigrid参数API