0
그레이 스케일 이미지의 흰색 픽셀 수를 계산하는 작은 프로그램을 만들었습니다. 같은 프로그램에서 이미지를 두 번 열면 결과가 달라집니다. 픽셀의 강도를 표시하는 경우와 동일하지만 동일한 이미지 일지라도 변경됩니다. 문제가있는 곳을 누군가가 보는 경우 도움을 받으십시오.프로그램에서 동일한 이미지에 대해 다른 결과가 나타납니다.
#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/imgproc.hpp"
#include <iostream>
using namespace std;
using namespace cv;
int main()
{ int i=0,j,nbr=0,nbr1=0;
Mat image=imread("2_.png",CV_LOAD_IMAGE_GRAYSCALE);
Mat image2=imread("2_.png",CV_LOAD_IMAGE_GRAYSCALE);
for(i=0;i<image.rows;i++)
{
for(j=0;j<image.cols;j++)
{if (image.at<int>(i,j)!=0)
nbr++;
if (image2.at<int>(i,j)!=0)
nbr1++;
}
}
printf("%d\n %d\n",nbr,nbr1);
return 0;}
감사합니다.
그래,이게 의미가있어. 왜냐하면 매번 int를 읽으면 결국에는 버퍼 오버가 발생하기 때문이다. 버퍼 너머의 데이터는 완전히 가비지입니다. –
위대한 포인트 !! ... –
@ JeruLuke 당신이 편집했기 때문에 영어가 잘못되었습니다. 이제는'int'가 틀린 것이 아니라 선택 사항이라고 읽습니다. – Galik