0
openCv에서 그레이 이미지의 그레이 스케일을 줄이는 방법이 있습니까?EmguCv : 그레이 스케일 줄이기
는 Normaly 난
Image<Gray, byte> inputImage
0에서 256 grayvalues있다.
제 경우에는 0-10의 회색 값이 필요합니다. OpenCV로 할 수있는 좋은 방법이 있나요? 특히 C#입니다.
openCv에서 그레이 이미지의 그레이 스케일을 줄이는 방법이 있습니까?EmguCv : 그레이 스케일 줄이기
는 Normaly 난
Image<Gray, byte> inputImage
0에서 256 grayvalues있다.
제 경우에는 0-10의 회색 값이 필요합니다. OpenCV로 할 수있는 좋은 방법이 있나요? 특히 C#입니다.
이런 종류의 일을 허용하는 OpenCV에는 기본 제공되는 것이 없습니다.
그럼에도 불구하고 직접 무언가를 쓸 수 있습니다. 이 C++ implementation를 살펴보고 단지의 C#로 번역 :
void colorReduce(cv::Mat& image, int div=64)
{
int nl = image.rows; // number of lines
int nc = image.cols * image.channels(); // number of elements per line
for (int j = 0; j < nl; j++)
{
// get the address of row j
uchar* data = image.ptr<uchar>(j);
for (int i = 0; i < nc; i++)
{
// process each pixel
data[i] = data[i]/div * div + div/2;
}
}
}
그냥이 기능 그레이
Mat
를 전송하고
div
매개 변수를 사용하여 재생할 수 있습니다.