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

公司该建哪种网站在线照片编辑工具

公司该建哪种网站,在线照片编辑工具,邯郸捕风科技有限公司,河南做网站的公司【欢迎关注编码小哥#xff0c;学习更多实用的编程方法和技巧】 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::vectorcv::Mat calculateColorHistogram(const cv::Mat image) {std::vectorcv::Mat histograms(3);int histSize 256;float range[] {0, 256};const float* histRange {range};// 分离通道std::vectorcv::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.atfloat(i - 1))),cv::Point(binWidth * i, height - cvRound(normalizedHist.atfloat(i))),cv::Scalar(0, 0, 0), 2);}return histImage;}// 绘制彩色直方图static cv::Mat drawColorHistogram(const std::vectorcv::Mat histograms) {int height 400;int width 512;cv::Mat histImage(height, width, CV_8UC3, cv::Scalar(255, 255, 255));std::vectorcv::Scalar colors {cv::Scalar(255, 0, 0), // 蓝色cv::Scalar(0, 255, 0), // 绿色cv::Scalar(0, 0, 255) // 红色};// 归一化直方图std::vectorcv::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].atfloat(i - 1))),cv::Point(binWidth * i, height - cvRound(normalizedHists[channel].atfloat(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::vectorcv::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::vectorcv::Mat channels;cv::split(yuvImage, channels);// 创建CLAHE对象cv::Ptrcv::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.eeditor.cn/news/122776/

相关文章:

  • 临时网站搭建wordpress外部调用插件
  • 泰安三合一网站建设公司wordpress分类模版设置插件
  • 怎么做点图片连接网站wordpress收费会员
  • 从化市网站建设平台设计图片欣赏
  • logo设计网站生成器wordpress 插件安装
  • 做网站是否要去工商备案psd转wordpress
  • 做网站有必要吗wordpress博客主题哪个好
  • 织梦网网站建设视频下载微信小程序开发教程pdf下载
  • 免备案做网站可以盈利吗企业免费招聘人才网站
  • 做交易网站需要用到的软件武侯区建设局网站
  • site 危险网站住房和城乡建设部政策研究中心
  • 山东网站建设公司哪家权威自动推广软件下载
  • 安徽建设厅考勤网站口碑营销方案怎么写
  • 外贸app网站开发wordpress怎么不调用文字内容
  • 有哪些做简历的网站长沙快速建站模板
  • 做视频网站需要多大空间信息分类网站好建吗
  • 做百度推广是不是得有个网站先delphi可以做网站吗
  • 学做美食视频在哪个网站潍坊微信网站
  • 网站建设知名营销型网站的建设与推广辅导记录
  • 九龙坡做网站做本地旅游网站
  • 济南建站服务商国内最新新闻热点事件
  • 学校做网站一般多少钱公司网站制作教学
  • 多用户网站工作室网站建设的意义
  • 安阳网站建设首选建设部网站39文件
  • 山东网站建设市场哈尔滨信息工程学院地址
  • 德州定制网站建设公司做网站的实验总结
  • 佛山做外贸网站咨询小企业网站如何建设好
  • 做网站需要购买地域名吗网站建设与管理以后工作方向
  • 到底建手机网站还是电脑网站编辑目录中的字体wordpress
  • 怎么用iapp做网站软件东莞网站运营知名乐云seo