gpt4 book ai didi

opencv - 计数黑色像素

转载 作者:行者123 更新时间:2023-12-02 17:52:22 24 4
gpt4 key购买 nike

我使用的是旧版本的C,因为我正在使用的书已经过时了:(目前,我正在研究一个项目,以检测图像中的对象。首先我对灰度图像进行高斯平滑处理,然后对其进行腐 eclipse 。 ,我应用阈值。现在,我试图获取每个宽度有多少个黑色像素,以便可以将其与其他行进行比较以确定中心。我在“for”循环中尝试此操作,但是,我不断错误:

term does not evaluate to a function taking 1 arguments


#include <highgui.h>
#include <cv.h>
#include <cxcore.h>

int main()
{
int total,
zero,
width,
blackpixel;

IplImage* in = cvLoadImage("Wallet.jpg", CV_LOAD_IMAGE_GRAYSCALE);
IplImage* gsmooth = cvCreateImage(cvGetSize(in), IPL_DEPTH_8U, 1);
IplImage* erode = cvCreateImage(cvGetSize(in), IPL_DEPTH_8U, 1);
IplImage* Iat = cvCreateImage(cvGetSize(in), IPL_DEPTH_8U, 1);
IplImage* bpixel = cvCreateImage(cvGetSize(in), IPL_DEPTH_8U, 1);

cvSmooth(in, gsmooth, CV_GAUSSIAN, 3, 0, 0, 0);
cvErode(gsmooth, erode, NULL, 2);
cvThreshold(erode, Iat, 100, 255, CV_THRESH_BINARY);

total = (Iat->height)*(Iat->width);

zero = total - cvCountNonZero(Iat);

printf("Total pixels: %d\nWhite pixels: %d\nBlack pixels: %d\n", total, cvCountNonZero(Iat), zero);

for(int i = 0; i < Iat->width; i++)
{
blackpixel = Iat->width(i);
}

cvNamedWindow("Original", 1);
cvNamedWindow("Gaussian Smoothing", 1);
cvNamedWindow("Erode", 1);
cvNamedWindow("Adaptive Threshold", 1);

cvShowImage("Original", in);
cvShowImage("Gaussian Smoothing", gsmooth);
cvShowImage("Erode", erode);
cvShowImage("Adaptive Threshold", Iat);

cvWaitKey(0);

cvReleaseImage(&in);
cvReleaseImage(&gsmooth);
cvReleaseImage(&erode);
cvReleaseImage(&Iat);

cvDestroyWindow("Original");
cvDestroyWindow("Gaussian Smoothing");
cvDestroyWindow("Erode");
cvDestroyWindow("Adaptive Threshold");
}

最佳答案

首先,当使用过时的书(如“Learining OpenCV”)时,不要害怕使用C++ API,因为这些概念仍然相关。如果您了解这个想法,那么转换为C++ API并不难,并且是一个很好的练习,因为您不能仅仅复制粘贴该代码。我以这种方式学习了OpenCV,并且我认为它是有效的:)。

使用C++ API,将非常简单

cv::Mat zeros = cv::Mat::zeros(Iat.size());
cv::Mat blackPixels = (Iat == zeros);
int blackPixelsCount = blackPixels.total();

关于opencv - 计数黑色像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17560979/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com