社区
C++ 语言
帖子详情
C++ 图像处理 怎么提取内边缘
yaojun123456789
2010-01-01 10:10:17
一个正方体箱子敞开之后,从上往下拍照取得一张平面照片,怎么把周边的东西去掉,只提取箱子内部的图像?
...全文
414
20
打赏
收藏
C++ 图像处理 怎么提取内边缘
一个正方体箱子敞开之后,从上往下拍照取得一张平面照片,怎么把周边的东西去掉,只提取箱子内部的图像?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yaojun123456789
2010-04-15
打赏
举报
回复
http://gaolingbo2.blog.163.com/album/#m=2&aid=111826403&pid=5919895149
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
基于opencv的
c++
实现图像
边缘
提取
图像
边缘
提取
#include<opencv2/opencv.hpp> #include<opencv2/imgproc/types_c.h> #include <opencv2/core.hpp> #include <opencv2/highgui.hpp> #include <iostream> #include &l
C++
OpenCV系统学习(8)——图像
边缘
填充、
边缘
提取
、
边缘
检测
在卷积开始之前增加
边缘
像素,填充的像素值为0或者RGB黑色,比如3x3在四周各填充1各像素的
边缘
,这样就确保图像的
边缘
被处理,在卷积处理hi后再去掉这些
边缘
,openCV中默认的处理方式就是:BORDER_DEFAULT,此外还有...
C/
C++
图像处理
4
边缘
检测
使用梯度、Robert、sobel、laplace算子对图像进行
边缘
检测
OPENCV
C++
图像
提取
,
图像处理
,roi,阈值分割,连通区域筛选,
边缘
检测(以箱子
边缘
框选为例)
OPENCV
C++
图像
提取
,
图像处理
,roi,阈值分割,连通区域筛选,
边缘
检测(以箱子
边缘
框选为例)
opencv
c++
边缘
提取
以图像像素值突变最大的方向作为
边缘
法线,与
边缘
法线垂直的就是
边缘
。
边缘
强度:局部图像上的像素值突变程度(图像局部一阶梯度和二阶梯度值)。
C++ 语言
64,649
社区成员
250,477
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章