相关疑难解决方法(0)

用opencv编写鲁棒(颜色和大小不变)圆检测(基于Hough变换或其他功能)

我编写了以下非常简单的python代码来查找图像中的圆圈:

import cv
import numpy as np

WAITKEY_DELAY_MS = 10
STOP_KEY = 'q'

cv.NamedWindow("image - press 'q' to quit", cv.CV_WINDOW_AUTOSIZE);
cv.NamedWindow("post-process", cv.CV_WINDOW_AUTOSIZE);

key_pressed = False
while key_pressed != STOP_KEY:

    # grab image
    orig = cv.LoadImage('circles3.jpg')

    # create tmp images
    grey_scale = cv.CreateImage(cv.GetSize(orig), 8, 1)
    processed = cv.CreateImage(cv.GetSize(orig), 8, 1)


    cv.Smooth(orig, orig, cv.CV_GAUSSIAN, 3, 3)

    cv.CvtColor(orig, grey_scale, cv.CV_RGB2GRAY)

    # do some processing on the grey scale image
    cv.Erode(grey_scale, processed, None, 10)
    cv.Dilate(processed, processed, None, 10)
    cv.Canny(processed, processed, 5, 70, 3)
    cv.Smooth(processed, …
Run Code Online (Sandbox Code Playgroud)

c c++ python opencv computer-vision

48
推荐指数
5
解决办法
5万
查看次数

如何使用Opencv删除背景图像

我是新的opencv.我写一个删除背景.
我的输入图片在此输入图像描述

我将我的程序编码为以下步骤:
- 计算平均像素

//define roi of image
cv::Rect roi(0, 0, 20 , 20 );

//copies input image in roi
cv::Mat image_roi = imgGray( roi );

//imshow("roi", image_roi);
//computes mean over roi
cv::Scalar avgPixelIntensity = cv::mean( image_roi );
//prints out only .val[0] since image was grayscale
cout << "Pixel intensity over ROI = " << avgPixelIntensity.val[0] << endl;
Run Code Online (Sandbox Code Playgroud)

- 根据平均像素值创建新的Mat图像:

//create new mat image base on avgPixelIntensity
cv::Mat areaSampleArv(imgGray.rows, imgGray.cols,imgGray.type(),avgPixelIntensity.val[0]);
imshow("areaSampleArv", areaSampleArv);
Run Code Online (Sandbox Code Playgroud)

- 反转图片:

void image_invert(Mat& image){
int height, …
Run Code Online (Sandbox Code Playgroud)

c++ opencv invert

4
推荐指数
1
解决办法
6663
查看次数

标签 统计

c++ ×2

opencv ×2

c ×1

computer-vision ×1

invert ×1

python ×1