opencv学习笔记(4)----图像分割

原创 2017年01月28日 16:19:51

任务:

1.在“作业素材”中,有一张horse_hw.jpg的图片,对图片中做目标分割,生成分割后的图片(黑白图)。

2.在horse_hw.jpg图像内画一个换色的矩形框,在矩形框内用白色写上自己的名字。

3.把1和2的两张图片上下摆放到图一个输出显示框内。

实验素材:

操作步骤:

第一步:做目标分割

1.转灰度图

2.二值化灰度图

第二步:画矩形框,写文字再图片上。

1.画矩形框

2.写文字在图片上

第三步:合成图片

1.生成图片Mat

2.将两张图片一次copy到目标图片上


完整源代码:

#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main()
{
	//--1.读入图片
	cv::Mat image = cv::imread("../roi/horse_hw.jpg");

	//--2.转换灰度图
	cv::Mat gray;
	cv::cvtColor(image, gray, CV_RGB2GRAY);

	//--3.二值化灰度图
	cv::Mat dst;
	cv::threshold(gray, dst, 60, 255, cv::THRESH_BINARY_INV);
	//画矩形,写名字
	Point a = Point(0, 20);
	Point center = Point(200, 80);
	rectangle(image, a, center, Scalar(255, 255, 255));
	string name = "flower";
	putText(image, name, Point(20, 60), CV_FONT_HERSHEY_COMPLEX, 1, Scalar(255, 255, 255));

	//--4.显示结果(原图和结果图显示在一起)
	const int width = image.cols;
	const int height = image.rows;
	cv::Mat show_image(cv::Size(width, 2 * height), CV_8UC3);
	//将dst转换为3通道,使得show_image和dst通道数一致,或者使用convertTo()函数做操作
	cv::cvtColor(dst, dst, CV_GRAY2RGB);
	//将dst拷贝image指定位置
	dst.copyTo(show_image(cv::Rect(0, 0, width, height)));
	//将image拷贝到显示图片指定位置
	image.copyTo(show_image(cv::Rect(0, height, width, height)));
	//显示
	cv::imshow("show", show_image);
        waitKey(0);
  return 1;}



合成效果图:




版权声明:本文为博主原创文章,未经博主允许不得转载。

Opencv分水岭算法——watershed自动图像分割用法

分水岭算法是一种图像区域分割法,在分割的过程中,它会把跟临近像素间的相似性作为重要的参考依据,从而将在空间位置上相近并且灰度值相近的像素点互相连接起来构成一个封闭的轮廓,封闭性是分水岭算法的一个重要特...
  • dcrmg
  • dcrmg
  • 2016年09月11日 00:40
  • 16268

OpenCV2学习笔记(四):两种图像分割方法比较

此次研究两种图像分割法,分别是基于形态学的分水岭算法和基于图割理论的GrabCut算法。OpenCV均提供了两张算法或其变种。鉴于研究所需,记录一些知识点,开发平台为OpenCV2.4.9+Qt5.3...
  • liyuefeilong
  • liyuefeilong
  • 2015年02月23日 16:16
  • 10770

基于GraphCuts图割算法的图像分割----OpenCV代码与实现

部分代码与文档是早些时候收集的,出处找不到了,还请原作者看到后联系注明。   图切算法是组合图论的经典算法之一。近年来,许多学者将其应用到图像和视频分割中,取得了很好的效果。本文简单介绍了图切算法和交...
  • wangyaninglm
  • wangyaninglm
  • 2015年03月09日 10:11
  • 36582

基于图割的图像分割OpenCV+MFC实现

  • 2015年03月09日 09:56
  • 62.59MB
  • 下载

Opencv均值漂移pyrMeanShiftFiltering彩色图像分割流程剖析

meanShfit均值漂移算法是一种通用的聚类算法,它的基本原理是:对于给定的一定数量样本,任选其中一个样本,以该样本为中心点划定一个圆形区域,求取该圆形区域内样本的质心,即密度最大处的点,再以该点为...
  • dcrmg
  • dcrmg
  • 2016年09月29日 23:52
  • 5879

opencv 金字塔图像分割

我所知的opencv中分割函数:watershed(只是看看效果,不能返回每类pixel类属),cvsegmentImage,cvPyrSegmentation(返回pixel类属)Segment函数...
  • abcjennifer
  • abcjennifer
  • 2014年01月13日 10:32
  • 12564

图像分割之(四)OpenCV的GrabCut函数使用和源码解读

图像分割之(四)OpenCV的GrabCut函数使用和源码解读 zouxy09@qq.com /zouxy09         上一文对GrabCut做...
  • zouxy09
  • zouxy09
  • 2013年01月23日 17:19
  • 59230

基于OpenCV 图像分割

一、概述        从图像中将目标或部分目标分割出来,是我们在进行图像处理的操作,也是有意义的事情。在很多情况下,我们也希望将感兴趣的目标区域分割出来,比如将一个人的脸或手分割出来。具体有下面提...
  • tiemaxiaosu
  • tiemaxiaosu
  • 2016年05月19日 11:26
  • 1589

图像分割—基于图的图像分割(OpenCV源码注解)

原文是Linux平台,图像格式PPM,比较不习惯,我改成了OpenCV,效果有一点点差别,应该是高斯滤波效果有差异。...
  • soidnhp
  • soidnhp
  • 2014年07月21日 21:53
  • 5284

opencv实现图像分割,分离前景和背景(1)

简介   如题,本篇就是讲解和使用opencv函数grabcut,来实现图像前景与背景的分离。 函数原型   1、opencv官方介绍:opencv官方grabcut介绍   2、网上童鞋翻译解释:...
  • u011630458
  • u011630458
  • 2015年05月14日 17:46
  • 15166
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:opencv学习笔记(4)----图像分割
举报原因:
原因补充:

(最多只允许输入30个字)