腐蚀膨胀等形态学处理c代码
生活随笔
收集整理的這篇文章主要介紹了
腐蚀膨胀等形态学处理c代码
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
// Morph.cpp : 定義控制臺應(yīng)用程序的入口點。
//#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include "stdio.h"
#include "stdlib.h"
#include "vector"using namespace std;//腐蝕
void MorphErosion(unsigned char* src, unsigned char* dst, int width, int height, int strutWidth, int structHeight)
{if (width - strutWidth < 0 && height - structHeight < 0)return;if (strutWidth != structHeight)return;int mid = (strutWidth + 1) / 2 - 1;unsigned char val = 255;for (int i = mid; i < height - mid; i++){for (int j = mid; j < width - mid; j++){for (int m = 0; m < strutWidth; m++){for (int n = 0; n < structHeight; n++){if (m == mid && n == mid )continue;val &= src[(i+m) * width + j + n];}}dst[i * width + j] = val;val = 255;}}
}
//膨脹
void MorphDilition(unsigned char* src, unsigned char* dst, int width, int height, int strutWidth, int structHeight)
{if (width - strutWidth < 0 && height - structHeight < 0)return;if (strutWidth != structHeight)return;int mid = (strutWidth + 1) / 2 - 1;unsigned char val = 0;for (int i = mid; i < height - mid; i++){for (int j = mid; j < width - mid; j++){for (int m = 0; m < strutWidth; m++){for (int n = 0; n < structHeight; n++){if (m == mid && n == mid )continue;val |= src[(i+m) * width + j + n];}}dst[i * width + j] = val;val = 0;}}
}
//先腐蝕后膨脹
void MorphOpen(unsigned char* src, unsigned char* tmp, int width, int height, int strutWidth, int structHeight)
{MorphErosion(src, tmp, width, height, strutWidth, structHeight);MorphDilition(tmp, src, width, height, strutWidth, structHeight);
}int _tmain(int argc, _TCHAR* argv[])
{IplImage * src, *dst ; src = cvLoadImage("src.bmp",0); IplImage* s=cvCreateImage(cvGetSize(src), IPL_DEPTH_8U,1);cvThreshold(src,src,180,255,CV_THRESH_BINARY);dst = cvCloneImage(src);MorphOpen((unsigned char*)src->imageData, (unsigned char*)dst->imageData, src->widthStep, src->height, 3, 3);cvShowImage("src",src); cvShowImage("dst",dst) ; cvWaitKey(0) ; cvReleaseImage(&src) ; cvReleaseImage(&dst) ; return 0;
}
這是一段用C代碼實現(xiàn)的形態(tài)學(xué)處理算法,適當(dāng)修改可用于嵌入式的圖像處理
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖
總結(jié)
以上是生活随笔為你收集整理的腐蚀膨胀等形态学处理c代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用Opencv的一些注意事项
- 下一篇: 程序猿过年相亲:你总会遇到一个女孩,她不