opencvsharp 에서 Mat 픽 셀 점 을 옮 겨 다 니 는 두 가지 방법
3799 단어 항목
public unsafe static Mat ConvolutionImage(Mat img, double[,] k, int offsetH, int offsetW, int height, int width)
{
Mat src = new Mat(img, new Rect(offsetW, offsetH, width, height));
Mat dst = new Mat(src.Size(), MatType.CV_8UC1, new Scalar(0));
int rows = src.Height, cols = src.Width;
int v;
for(int i = 1; i < rows -1; i++)
{
IntPtr a = dst.Ptr(i);
byte* b = (byte*)a.ToPointer();
for (int j = 1; j < cols - 1; j++)
{
b[j] = 200;
}
}
//for(int i = 1; i < rows -1; i++)
//{
// for(int j = 1; j < cols -1; j++)
// {
// v = (int)Math.Abs(k[0, 0] * src.Get(i - 1, j - 1) + k[0, 2] * src.Get(i - 1, j + 1) + k[0, 1] * src.Get(i - 1, j) + k[2, 1] * src.Get(i + 1, j));
// v =(int)(255 - 2 * v + 2 * k[1, 1] * src.Get(i, j));
// v = v > 0 ? v : 0;
// v = v < 255 ? v : 255;
// dst.Set(i, j, v);
// }
//}
return dst;
}
2.C\#의 get 과 set 방법 으로 속도 가 느 립 니 다.
//for(int i = 1; i < rows -1; i++)
//{
// for(int j = 1; j < cols -1; j++)
// {
// v = (int)Math.Abs(k[0, 0] * src.Get(i - 1, j - 1) + k[0, 2] * src.Get(i - 1, j + 1) + k[0, 1] * src.Get(i - 1, j) + k[2, 1] * src.Get(i + 1, j));
// v =(int)(255 - 2 * v + 2 * k[1, 1] * src.Get(i, j));
// v = v > 0 ? v : 0;
// v = v < 255 ? v : 255;
// dst.Set(i, j, v);
// }
//}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
프로젝트 경험helm 노드의 탄성 신축, 클라우드 호스트에 대한 탄성 신축을 이용하여 알리 클라우드 로그 서비스 은 jenkins shell 또는 drone을 사용할 수 있습니다. 이것은 클라우드 서비스 업체가 제공하는 서비스입...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.