图像二值化后为什么背景的颜色为白色?此前使用的时候背景的颜色都为黑色的

brk1985 2009-07-19 10:07:38
使用OpenCV图像二值化函数cvThreshold,之前一直为黑色,但是我从网上下载的一个代码,也是用cvThreshold函数,看了关键代码也差不多。但是二值化后背景的颜色确是白色,为什么呢?


#include "cv.h"
#include "highgui.h"
#include <stdio.h>

int slider_pos = 40;

IplImage *image02 = 0, *image_src = 0, *image04 = 0;
void process_rect(int h);

void main( int argc, char** argv )
{
const char* filename = "E:\\106vd.bmp";

// 读入图像,强制为灰度图像
if( (image_src = cvLoadImage(filename, 1)) == 0 ) //cvLoadImage(filename, 1)则为单通道图像
return;

// Create the destination images
//image02 = cvCloneImage( image_src );
//image04 = cvCloneImage( image_src );
image02 = cvCreateImage(cvGetSize(image_src),8,1);//8位单通道图片
image04 = cvCreateImage(cvGetSize(image_src),8,1);//8位单通道图片 NULL array pointer is passed
cvCvtColor(image_src,image02,CV_BGR2GRAY);
cvSmooth(image02, image02, CV_GAUSSIAN,9,9);//去除干扰
cvErode( image02, image02, NULL,1 );//3*3腐蚀模板过滤,以去掉零星的噪声
cvDilate(image02, image02, 0, 1);//3*3膨胀模板过滤,以恢复原来的前景
//image02 = cvCloneImage( image_src );

// Create windows.
cvNamedWindow("Source", 1);
cvNamedWindow("Result", 1);


// Create toolbars. HighGUI use.
cvCreateTrackbar( "Threshold", "Result", &slider_pos, 255, process_rect );
process_rect(0);

// Show the image.
cvShowImage("Source", image_src);
//cvShowImage("Result", image02);
// Wait for a key stroke; the same function arranges events processing
cvWaitKey(0);

cvReleaseImage(&image02);
cvReleaseImage(&image_src);

cvDestroyWindow("Source");
cvDestroyWindow("Result");
}

// Define trackbar callback functon. This function find contours,
// draw it and approximate it by ellipses.
static void process_rect(int h)
{

// 创建动态结构序列
CvMemStorage* stor = cvCreateMemStorage(0);
CvSeq* cont = cvCreateSeq(CV_SEQ_ELTYPE_POINT, sizeof(CvSeq), sizeof(CvPoint) , stor);


// 二值化图像.
//slider_pos = Otsu(image02);
//char str[50];
//sprintf(str,"%d",slider_pos);
//MessageBox( 0, str , ".net", 0 );

cvThreshold( image02, image04, slider_pos, 255, CV_THRESH_BINARY );

// Show image. HighGUI use.
cvShowImage( "Result", image04 );/**/
}
...全文
324 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xingzhe2001 2009-08-12
  • 打赏
  • 举报
回复
你发错地方了,这里是讨论c++语言的地方,对opencv这种计算可视化的问题去专题板块发效果会好点。
brk1985 2009-08-12
  • 打赏
  • 举报
回复
怎么没人的呢?伤心。。。
大前置 2009-07-20
  • 打赏
  • 举报
回复
帮顶~~

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧