我试图通过侵蚀和扩张过程消除数字周围的事物.我试过但没有发生任何事.我改变了值只是为了看看是否会改变一些东西,但同样,没有任何改变.图像继续如上面的链接.这些参数怎么样......我阅读了文档,但不太明白(正如你所看到的,我在猜测函数).我究竟做错了什么?
图片:https://docs.google.com/file/d/0BzUNc6BOkYrNeVhYUk1oQjFSQTQ/edit?usp =sharing
代码:
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main ( int argc, char **argv )
{
Mat im_gray;
Mat img_bw;
Mat img_final;
Mat im_rgb = imread("cam.jpg");
cvtColor(im_rgb,im_gray,CV_RGB2GRAY);
adaptiveThreshold(im_gray, img_bw, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY_INV, 105, 1);
dilate(img_bw, img_final, 0, Point(-1, -1), 2, 1, 1);
imwrite("cam_final.jpg", img_final);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Ese*_*nti 17
根据官方文档,第三个参数应该是内核(或结构元素).您目前正在通过0:
dilate(img_bw, img_final, 0, Point(-1, -1), 2, 1, 1);
Run Code Online (Sandbox Code Playgroud)
尝试这样重写:
dilate(img_bw, img_final, Mat(), Point(-1, -1), 2, 1, 1);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,将使用默认的3x3内核.
| 归档时间: |
|
| 查看次数: |
54174 次 |
| 最近记录: |