图片对比,计算不同像素个数,已经比率。实现人工分割跟算法分割图像结果的对比,但是只能用灰度图像作为输入

// imageMaskComparison.cpp : 定义控制台应用程序的入口点。
//// imageMaskComparison.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace std;
using namespace cv;int main()
{String image_name,image1,image2;cout<<"input Parameters:"<<endl;cout<<"image name 1 : ";cin>>image1;cout<<"image name 2 : ";cin>>image2;Mat img1 = imread((char *)image1.c_str(), CV_LOAD_IMAGE_GRAYSCALE);Mat img2 = imread((char *)image2.c_str(), CV_LOAD_IMAGE_GRAYSCALE);//两幅图像的大小需要一致 imshow("img1",img1);imshow("img2",img2);Mat img_result1 , img_result2 , img_result ;img_result1.create(img1.rows,img1.cols,CV_8UC1);img_result1 = 255;img_result2.create(2,img1.size,CV_8UC1);img_result2 = 255;img_result.create(img2.rows,img2.cols,CV_8UC1);img_result = 0;//subtract(img1,img2, img_result1);//subtract(img2,img1, img_result2);//add(img_result1, img_result2, img_result1);absdiff(img1,img2,img_result);int init_index = 0;/*for(int i=0; i<img_result.rows; i++){for(int j=0; j<img_result.cols; j++) {if (img_result.at<uchar>(i,j)== 255){init_index++;}}}*/int count = 0;for(int i=0; i<img1.rows; i++){for(int j=0; j<img1.cols; j++) {if ( img1.at<uchar>(i,j) == img2.at<uchar>(i,j)){img_result.at<uchar>(i,j) = (uchar)255;}else{count++;img_result.at<uchar>(i,j) = (uchar)0;}}}int sum = img1.cols*img1.rows;double error_ratio = count/(double)sum;//cout<<init_index<<endl;cout<<"number of different pixel:"<<count<<endl;cout<<"error ratio: "<<error_ratio<<endl;imwrite("result.bmp",img_result);//imshow("result1", img_result1);//imshow("result2", img_result2);namedWindow( "result", CV_WINDOW_AUTOSIZE );imshow("result", img_result);waitKey();return 0;
}

转载于:https://www.cnblogs.com/wangyaning/p/4236999.html

图片像素对比OpenCV实现,实现人工分割跟算法分割图像结果的对比相关推荐

  1. Python OpenCV学习笔记之:分水岭算法分割图像

    为什么80%的码农都做不了架构师?>>>    # -*- coding: utf-8 -*- """ 图像分水岭分割图像 分水岭算法可以参考:http ...

  2. python切割图片文字_Python+opencv 实现图片文字的分割的方法示例

    Python+opencv 实现图片文字的分割的方法示例 发布时间:2020-08-26 03:28:37 来源:脚本之家 阅读:116 作者:坏小孩90 实现步骤: 1.通过水平投影对图形进行水平分 ...

  3. python opencv获取图片分辨率_python-opencv遍历图片像素,并对像素进行操作

    看代码: def access_pixels(frame): print(frame.shape) #shape内包含三个元素:按顺序为高.宽.通道数 height = frame.shape[0] ...

  4. android都图片mat_计算机视觉 OpenCV Android | Mat像素操作(图像像素的读写、均值方差、算术、逻辑等运算、权重叠加、归一化等操作)...

    本文目录 1. 像素读写 2. 图像通道与均值方差计算 3. 算术操作与调整图像的亮度和对比度 4. 基于权重的图像叠加 5. Mat的其他各种像素操作 1. 像素读写 Mat作为图像容器,其数据部分 ...

  5. 分水岭算法分割图像的原理概述及OpenCV代码实现

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 前面博文中提到的图像阈值化,图像边缘检测,图像轮 ...

  6. OpenCV 进行图像相似度对比的几种办法-【顺带附py对比学习案例】

    最近研究了下计算机视觉.图像对比参考了一下py的一些源码和思路等信息学习学习. 但是呢只能对应相似度.稍微改一改剪切了图片后的就变化差异比较大,对目前自己的需求来说不是很有作用,顺带整理分享一下. 如 ...

  7. OpenCV进行图像相似度对比的几种办法

    平均哈希算法 实现步骤 缩小尺寸:将图像缩小到8*8的尺寸,总共64个像素.这一步的作用是去除图像的细节,只保留结构/明暗等基本信息,摒弃不同尺寸/比例带来的图像差异: 简化色彩:将缩小后的图像,转为 ...

  8. 分水岭算法java,OpenCV 学习笔记 04 深度估计与分割——GrabCut算法与分水岭算法...

    1 使用普通摄像头进行深度估计 1.1 深度估计原理 这里会用到几何学中的极几何(Epipolar Geometry),它属于立体视觉(stereo vision)几何学,立体视觉是计算机视觉的一个分 ...

  9. (OpenCV+Python)--目标跟踪,背景分割器:KNN、MOG2和GMG

    OpenCV提供了一个称为BackgroundSubtractor的类,在分割前景和背景时很方便. 在OpenCV3中有三种背景分割器:K-Nearest(KNN).Mixture of Gaussi ...

  10. 【千律】OpenCV基础:图像阈值分割 -- 自适应阈值分割 -- 代码实现

    环境:Python3.8 和 OpenCV 内容:自适应阈值分割代码实现 import cv2 as cv import numpy as np import matplotlib.pyplot as ...

最新文章

  1. 让你的数据离CPU更近一些
  2. AngularJs 常用指令标签
  3. linux 病毒脚本,解析常见的Linux病毒
  4. openstack下
  5. 有小数点是什么类型_为什么0.1+0.2不等于0.3?原来编程语言是这么算的……
  6. DCMTK:测试CT Table Dynamics FG类
  7. MetaMask发布自定义网络API,允许开发人员为其用户提供多链服务
  8. 秒针国家统计局项目:我的一些感想和8点安全措施
  9. vmware esxi6.5安装使用教程(图文安装)
  10. Lattice系列内存时序
  11. django.template.exceptions.TemplateSyntaxError: Invalid block tag on line 12: ‘static‘. Did you forg
  12. Robin:SEO从业者打造个人品牌的八个建议,白杨SEO个人品牌实战举例
  13. AI创作教程之如何使用简单的 Web API 和 GPU 支持在 Docker 中运行 Stable Diffusion,在 45 秒内启动用于 Stable Diffusion的 Web API
  14. 【蓝桥杯Java】棋盘放麦子
  15. 什么是内测分发?怎么样进行内测分发?
  16. iOS iphone5屏幕适配 autosizing
  17. 【线刷大师】一键救砖教程,救砖工具
  18. DeathStarBench-Running the social network application
  19. javamail阅读回执_使用阅读回执可能会让您变得更好
  20. Spring Boot 之 spring.factories的用法

热门文章

  1. vue 第十天 (组件的基本使用)
  2. vue 第五天 (事件监听基础)
  3. 【渝粤教育】国家开放大学2018年秋季 0275-22T内科护理学 参考试题
  4. 有监督的神经网络模型
  5. 中国政法大学政治与公共管理学院丛日云教授在毕业典礼上的演讲在网络上暴红,
  6. 洛谷P3952 时间复杂度
  7. ICDAR2017 Competition on Reading Chinese Text in the Wild(RCTW-17) 介绍
  8. 移动端APP测试概要
  9. 【转】CString 操作指南
  10. 从Jensen不等式到Minkowski不等式