当前位置: 首页 > news >正文

制作营销网站模板seo是什么意思中文翻译

制作营销网站模板,seo是什么意思中文翻译,做qq阅读网站介绍,企业网站轮播图【欢迎关注编码小哥,学习更多实用的编程方法和技巧】 1、基本直方图计算 // 灰度图直方图 cv::Mat calculateGrayscaleHistogram(const cv::Mat& image) {cv::Mat histogram;int histSize 256; // 灰度级别float range[] {0, 256};const float* histRange …

【欢迎关注编码小哥,学习更多实用的编程方法和技巧】

1、基本直方图计算

// 灰度图直方图
cv::Mat calculateGrayscaleHistogram(const cv::Mat& image) {cv::Mat histogram;int histSize = 256;  // 灰度级别float range[] = {0, 256};const float* histRange = {range};cv::calcHist(&image,      // 输入图像1,           // 图像数量0,           // 通道索引cv::Mat(),   // 掩膜histogram,   // 输出直方图1,           // 直方图维度&histSize,   // 直方图大小&histRange   // 像素值范围);return histogram;
}// 彩色图直方图
std::vector<cv::Mat> calculateColorHistogram(const cv::Mat& image) {std::vector<cv::Mat> histograms(3);int histSize = 256;float range[] = {0, 256};const float* histRange = {range};// 分离通道std::vector<cv::Mat> channels;cv::split(image, channels);// 计算每个通道直方图for (int i = 0; i < 3; i++) {cv::calcHist(&channels[i],  // 输入通道1,             // 图像数量0,             // 通道索引cv::Mat(),     // 掩膜histograms[i], // 输出直方图1,             // 直方图维度&histSize,     // 直方图大小&histRange     // 像素值范围);}return histograms;
}

 2、直方图可视化

class HistogramVisualizer {
public:// 绘制直方图static cv::Mat drawHistogram(const cv::Mat& histogram, int height = 400) {// 归一化直方图cv::Mat normalizedHist;cv::normalize(histogram, normalizedHist, 0, height, cv::NORM_MINMAX);// 创建绘图画布int width = 512;cv::Mat histImage(height, width, CV_8UC3, cv::Scalar(255, 255, 255));// 绘制直方图int binWidth = cvRound((double)width / histogram.rows);for (int i = 1; i < histogram.rows; i++) {cv::line(histImage, cv::Point(binWidth * (i - 1), height - cvRound(normalizedHist.at<float>(i - 1))),cv::Point(binWidth * i, height - cvRound(normalizedHist.at<float>(i))),cv::Scalar(0, 0, 0), 2);}return histImage;}// 绘制彩色直方图static cv::Mat drawColorHistogram(const std::vector<cv::Mat>& histograms) {int height = 400;int width = 512;cv::Mat histImage(height, width, CV_8UC3, cv::Scalar(255, 255, 255));std::vector<cv::Scalar> colors = {cv::Scalar(255, 0, 0),   // 蓝色cv::Scalar(0, 255, 0),   // 绿色cv::Scalar(0, 0, 255)    // 红色};// 归一化直方图std::vector<cv::Mat> normalizedHists(3);for (int i = 0; i < 3; i++) {cv::normalize(histograms[i], normalizedHists[i], 0, height, cv::NORM_MINMAX);}// 绘制直方图int binWidth = cvRound((double)width / histograms[0].rows);for (int i = 1; i < histograms[0].rows; i++) {for (int channel = 0; channel < 3; channel++) {cv::line(histImage, cv::Point(binWidth * (i - 1), height - cvRound(normalizedHists[channel].at<float>(i - 1))),cv::Point(binWidth * i, height - cvRound(normalizedHists[channel].at<float>(i))),colors[channel], 2);}}return histImage;}
};

3、直方图均衡化 

class HistogramEqualizer {
public:// 灰度图均衡化static cv::Mat equalizeGrayscaleImage(const cv::Mat& image) {cv::Mat equalizedImage;cv::equalizeHist(image, equalizedImage);return equalizedImage;}// 彩色图均衡化static cv::Mat equalizeColorImage(const cv::Mat& image) {// 转换到YUV空间cv::Mat yuvImage;cv::cvtColor(image, yuvImage, cv::COLOR_BGR2YUV);// 分离通道std::vector<cv::Mat> channels;cv::split(yuvImage, channels);// 仅均衡化亮度通道cv::equalizeHist(channels[0], channels[0]);// 合并通道cv::merge(channels, yuvImage);// 转换回BGRcv::Mat equalizedImage;cv::cvtColor(yuvImage, equalizedImage, cv::COLOR_YUV2BGR);return equalizedImage;}// 自适应直方图均衡化(CLAHE)static cv::Mat adaptiveHistogramEqualization(const cv::Mat& image, double clipLimit = 2.0) {cv::Mat yuvImage;cv::cvtColor(image, yuvImage, cv::COLOR_BGR2YUV);std::vector<cv::Mat> channels;cv::split(yuvImage, channels);// 创建CLAHE对象cv::Ptr<cv::CLAHE> clahe = cv::createCLAHE(clipLimit, cv::Size(8, 8));clahe->apply(channels[0], channels[0]);cv::merge(channels, yuvImage);cv::Mat equalizedImage;cv::cvtColor(yuvImage, equalizedImage, cv::COLOR_YUV2BGR);return equalizedImage;}
};

 4、直方图比较

class HistogramComparator {
public:// 直方图比较方法enum CompareMethod {CORRELATION = cv::HISTCMP_CORREL,CHI_SQUARE = cv::HISTCMP_CHISQR,INTERSECTION = cv::HISTCMP_INTERSECT,BHATTACHARYYA = cv::HISTCMP_BHATTACHARYYA};// 比较两个直方图static double compareHistograms(const cv::Mat& hist1, const cv::Mat& hist2, CompareMethod method = CORRELATION) {return cv::compareHist(hist1 , hist2, method);}
};// 使用示例
cv::Mat image1 = cv::imread("image1.jpg", cv::IMREAD_GRAYSCALE);
cv::Mat image2 = cv::imread("image2.jpg", cv::IMREAD_GRAYSCALE);cv::Mat hist1 = calculateGrayscaleHistogram(image1);
cv::Mat hist2 = calculateGrayscaleHistogram(image2);double similarity = HistogramComparator::compareHistograms(hist1, hist2, HistogramComparator::CORRELATION);
std::cout << "Histogram similarity: " << similarity << std::endl; ```cpp
// 重新合并通道
cv::Mat processedImage;
cv::merge(channels, processedImage);
return processedImage;
}// 使用示例
cv::Mat inputImage = cv::imread("input.jpg");
cv::Mat outputImage = processImageChannels(inputImage);// 显示结果
cv::imshow("Processed Image", outputImage);
cv::waitKey(0);
cv::destroyAllWindows();
``` ```cpp
// 重新合并通道
cv::Mat processedImage;
cv::merge(channels, processedImage);
return processedImage;
}// 使用示例
cv::Mat inputImage = cv::imread("input.jpg");
cv::Mat outputImage = processImageChannels(inputImage);// 显示结果
cv::imshow("Processed Image", outputImage);
cv::waitKey(0);
cv::destroyAllWindows();
}

http://www.khdw.cn/news/39787.html

相关文章:

  • 薅羊毛做任务赚钱网站百度人工服务热线
  • 国外网站有哪些平台seo快速排名优化
  • 京东的网站是哪家公司做没经验怎么开广告公司
  • 网站设计销售软件企业宣传方式有哪些
  • 手机网站制作行业排行站长工具使用
  • 网站建设案例分析题5年网站seo优化公司
  • 福田区建设局网站免费做网站网站的软件
  • 佛山南海网站建设百度查关键词显示排名
  • 做网站图标的软件seo优化一般多少钱
  • 怎么对b2b网站做优化关键词搜索排名推广
  • 响应式网站价格全国疫情排名一览表
  • 菠菜网站做首存域名注册平台有哪些
  • 宿州网站建设多少钱百度top风云榜
  • 二次元动漫网站设计方案2023国内外重大新闻事件10条
  • 网站右侧广告seo专员工资一般多少
  • 上海金山网站建设公司关键字挖掘机爱站网
  • 可以上传自己做的视频的网站吗今日头条新闻下载安装
  • 防止访问网站文件夹邯郸今日头条最新消息
  • 提出网络营销思想的网站改版计划产品怎么做推广和宣传
  • wordpress自定义全局变量seo推广排名公司
  • 平面设计工作室网站太原seo网站优化
  • 烟台h5网站建设公司网站收录量是什么意思
  • 网站建设利润河南网站推广公司
  • wordpress网站速度时快时慢google浏览器网页版
  • 如何做谷歌网站优化长沙seo关键词
  • 济南浩特元辰建设工程有限公司网站企业官方网站推广
  • 岳阳政府网站建设公司什么是软文文案
  • 外链平台有哪些湖南优化推广
  • php网站开发实例pdf竞价推广哪家公司好
  • 人像写真哔哩哔哩win10优化大师官网