资源简介
OpenCV种子填充实现彩色图像分割的代码
代码片段和文件信息
#ifdef _CH_
#pragma package
#endif
#ifndef _EiC
#include “cv.h“
#include “highgui.h“
#include
#include
#endif
IplImage* color_img0;
IplImage* mask;
IplImage* color_img;
IplImage* gray_img0 = NULL;
IplImage* gray_img = NULL;
int ffill_case = 1;
int lo_diff = 20 up_diff = 20;
int connectivity = 4;
int is_color = 1;
int is_mask = 0;
int new_mask_val = 255;
void on_mouse( int event int x int y int flags VOID*P)
{
if( !color_img )
return;
switch( event )
{
case CV_EVENT_LBUTTONDOWN:
{
CvPoint seed = cvPoint(xy);
int lo = ffill_case == 0 ? 0 : lo_diff;
int up = ffill_case == 0 ? 0 : up_diff;
int flags = connectivity + (new_mask_val << 8) +
(ffill_case == 1 ? CV_FLOODFILL_FIXED_RANGE : 0);
int b = rand() & 255 g = rand() & 255 r = rand() & 255;
CvConnectedComp comp;
if( is_mask )
cvThreshold( mask mask 1 128 CV_THRESH_BINARY );
if( is_color )
{
CvScalar color = CV_RGB( r g b );
cvFloodFill( color_img seed color CV_RGB( lo lo lo )
CV_RGB( up up up ) &comp flags is_mask ? mask : NULL );
cvShowImage( “image“ color_img );
}
else
{
CvScalar brightness = cvRealScalar((r*2 + g*7 + b + 5)/10);
cvFloodFill( gray_img seed brightness cvRealScalar(lo)
cvRealScalar(up) &comp flags is_mask ? mask : NULL );
cvShowImage( “image“ gray_img );
}
printf(“%g pixels were repainted\n“ comp.area );
if( is_mask )
cvShowImage( “mask“ mask );
}
break;
}
}
int main( int argc char** argv )
{
char* filename = argc >= 2 ? argv[1] : (char*)“fruits.jpg“;
if( (color_img0 = cvLoadImage(filename1)) == 0 )
return 0;
printf( “Hot keys: \n“
“\tESC - quit the program\n“
“\tc - switch color/grayscale mode\n“
“\tm - switch mask mode\n“
“\tr - restore the original image\n“
“\ts - use null-range floodfill\n“
“\tf - use gradient floodfill with fixed(absolute) range\n“
“\tg - use gradient floodfill with floating(relative) range\n“
“\t4 - use 4-connectivity mode\n“
“\t8 - use 8-connectivity mode\n“ );
color_img = cvCloneImage( color_img0 );
gray_img
- 上一篇:c语言模拟进程
- 下一篇:三次B样条曲线算法 计算机图形学 案例代码
相关资源
- opencv图片扫描以及校正
- 彩色贪吃蛇.c
- 基于改进的fcm算法的图像分割vc++
- 基于图割的图像分割OpenCV+MFC实现
- C语言通讯录管理系统彩色界面
- 池塘夜降彩色雨
-
Unreal Engine 4 sc
ripting with C++ Cookbook - C++图像伪彩色处理源代码
- 计算BMP24位真彩色图像PSNR的C++小程序
- 计算机图形学多边形种子填充算法
- vc种子填充
- grabcut的c++源代码
- 计算机图形学画线、画圆、种子填充
- bmp24位彩色图像转8位灰度图像纯C++
- vc++MFC画彩色五角星
- 种子填充算法,扫描线填充算法,带
- 伪彩色增强算法 适用于c、matlab编程
- 数据结构、算法与应用-C++描述超高清
- C++ Primer 第5版(中文) 超清晰,彩色
- 兄弟彩色打印机 DCP-9020CDN MFC-9140CDN-
- C++数据结构实现池塘夜降彩色雨附带
- 关于图像的8个毕业设计论文
- 图像灰度化
- 肺部CT图像分割及重建系统
- Opencv cvKmeans2进行灰度图像和彩色图像
- C语言池塘夜降彩色雨附加风效果
- KinectV2彩色图片尺寸变换代码变换后与
- FCM_S聚类图像分割程序
- 基于聚类的医学图像分割法
- MRF2图像分割vc++代码
评论
共有 条评论