Emgu 距离变换
来源:互联网 发布:mysql的存储过程实例 编辑:程序博客网 时间:2024/05/20 14:23
函数:public static void cvDistTransform(IntPtr src,IntPtr dst,DIST_TYPE distanceType,int maskSize,float[] userMask,IntPtr labels)
应用:
private void distanceTransform(object sender, EventArgs e) { if (this.ActiveMdiChild != null) { imgForm curWid = (imgForm)this.ActiveMdiChild; Image<Emgu.CV.Structure.Bgr, byte> img = curWid.CurImage; Image<Gray, byte> gray = img.Convert<Gray, byte>(); CvInvoke.cvCanny(gray, gray, 100, 200, 3); for (int i = 0; i < gray.Height; i++) { for (int j = 0; j < gray.Width; j++) { gray.Data[i, j, 0] = Convert.ToByte(255 - gray.Data[i, j, 0]); } } Image<Gray, byte> result = new Image<Gray, byte>(gray.Width, gray.Height); CvInvoke.cvDistTransform(gray,result, Emgu.CV.CvEnum.DIST_TYPE.CV_DIST_L1, 3, null, IntPtr.Zero); CvInvoke.cvShowImage("Test", result); CvInvoke.cvShowImage("binary", gray); } }
当使用其他距离时,要求目标图像为32位图
IntPtr dst = CvInvoke.cvCreateImage(CvInvoke.cvGetSize(src), Emgu.CV.CvEnum.IPL_DEPTH.IPL_DEPTH_32F, 1);CvInvoke.cvDistTransform(src, dst, Emgu.CV.CvEnum.DIST_TYPE.CV_DIST_L2, 5, null, IntPtr.Zero);效果图:
PS:
emguCV里边,将特征点赋值为0,非特征点为1,而在matlab里边,则恰好相反。
I=imread('D:\公共图片库\1.jpg');g=rgb2gray(I);g=edge(g,'canny');d=bwdist(g,'euclidean');subplot(121),imshow(mat2gray(d));subplot(122),imshow(g);
- Emgu 距离变换
- emgu cv 透视变换
- 距离变换
- 距离变换
- 距离变换
- 距离变换
- 距离变换
- 距离变换
- 距离变换
- 距离变换
- 距离变换
- 距离变换
- 距离变换
- 距离变换
- 距离变换
- 距离变换
- 距离变换
- 距离变换(cvDistTransform)
- 在 ubuntu下配置时区的方法
- 处理文本文件命令sed
- Eclipse插件开发如何应用另一个项目作为插件
- Android动画效果——X、Y轴抖动
- 用spring实现的发送mail实例
- Emgu 距离变换
- leetcode-Palindrome Partitioning
- java.net.SocketException四大异常解决方案
- window.open 与openwindow.location的区别
- C++中对象的动态创建与释放
- 为什么要使用cmake+VS重新编译的opencv库?
- 把修改方法写活
- JBoss Rules(Drools)
- 控件包含代码块(即 <% ... %>),因此无法修改控件集合(用户自定义控件中)