C++ 图像处理 怎么提取内边缘

yaojun123456789 2010-01-01 10:10:17
一个正方体箱子敞开之后,从上往下拍照取得一张平面照片,怎么把周边的东西去掉,只提取箱子内部的图像?
...全文
414 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaojun123456789 2010-04-15
  • 打赏
  • 举报
回复
yaojun123456789 2010-01-11
  • 打赏
  • 举报
回复
愿意帮忙解决的,请加QQ:352058799.谢谢!
macrojj 2010-01-11
  • 打赏
  • 举报
回复
你这么简单的东西 还需要引入一个库吗 。
你都知道二值化了。你能不能计算出黑色区域的大小嘛。
你能不能用一个位图去保存这个区域嘛。
yaojun123456789 2010-01-11
  • 打赏
  • 举报
回复
yaojun123456789 2010-01-11
  • 打赏
  • 举报
回复
方法和步骤其实我都清楚,就是代码写不出来,我就是用OpenCV做的,确实是楼上说的做的,就是出不了要的结果,我C言语不行啊,要一下代码啊
jssd2008 2010-01-11
  • 打赏
  • 举报
回复
读取bmp图像的像素值,大小为cvSize(Wth,Hth)。

void ModeClass::GetModeData(IplImage *img)
{
CMymfcDlg* MoImg=new CMymfcDlg;
IplImage* ModeIplImage=cvCreateImage(cvSize(Wth,Hth),IPL_DEPTH_8U,3);
int i,j,k;
int height=Hth;
int width=Wth;
int step=ModeIplImage->widthStep;
int channels=img->nChannels;
uchar* data0=(uchar*)img->imageData;
uchar* data1=(uchar*)ModeIplImage->imageData;
ModeIplImage->height=Hth;
ModeIplImage->width=Wth;
ModeIplImage->nChannels=img->nChannels;
cvNamedWindow("ModeIplImage",CV_WINDOW_AUTOSIZE);
cvMoveWindow("ModeIplImage",100,100);
for(i=0;i<Hth;i++) for(j=0;j<Wth;j++) for(k=0;k<channels;k++)
data1[i*step+j*channels+k]=data0[(i+Pointx)*img->widthStep+(j+Pointy)*channels+k];
cvShowImage("ModeIplImage",ModeIplImage);
SaveImage(ModeIplImage);
cvWaitKey(0);
cvReleaseImage(&ModeIplImage);
delete MoImg;
}
jssd2008 2010-01-09
  • 打赏
  • 举报
回复
OpenCV里有形状识别的函数。应该可以直接用得上
jssd2008 2010-01-09
  • 打赏
  • 举报
回复
二值化后的图像像素值不是0就是255,判断出那一堆0(应该是0为黑吧,忘记了。。。)再加点其他所谓正方形的条件限制应该可以了。。
jssd2008 2010-01-09
  • 打赏
  • 举报
回复
LZ,看一下OpenCV应该对你有帮助。不知道你二值化后的效果怎么样。如果好的话可以遍历每一个像素,这样可以读取黑色正方形区域的图像。
beyond071 2010-01-08
  • 打赏
  • 举报
回复
这种图像处理的问题 最好还是拿出样图来具体讨论 凭空说的理论未必能解决问题
yaojun123456789 2010-01-08
  • 打赏
  • 举报
回复
图片怎么上传的?
yaojun123456789 2010-01-07
  • 打赏
  • 举报
回复
怎么一直没人的啊,都放假了啊
fire123cba 2010-01-02
  • 打赏
  • 举报
回复
根据像素值的不同,提取箱子内部的图像
macrojj 2010-01-02
  • 打赏
  • 举报
回复
做个微分 然后边缘就可以出来了
beginnow 2010-01-02
  • 打赏
  • 举报
回复
如果你知道外围的宽度,那么结合在内存中的存储方式可以将周围一圈裁掉,再或则外围的颜色是固定的也可以直接去掉
kiwigiving 2010-01-02
  • 打赏
  • 举报
回复
http://search.download.csdn.net/search/C%252B%252B%20%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86
yaojun123456789 2010-01-02
  • 打赏
  • 举报
回复
我想的是把图像先二值化了,这样图像就变成中间一块黑色正方形的,而四个角都有一块不规则黑色,问题是只想留中间的黑色正方形区域的图像怎么用C++代码写?
Contemplating 2010-01-02
  • 打赏
  • 举报
回复
楼主可以去研究一下openCV

64,649

社区成员

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

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