我的Pleora SDK已获得许可,我不是在谈论水印。
有时候,即使图像保存有这些水平线伪像,它也可以保存得很好。
我正在这样保存图像:
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread("RC0307Rf_20180928_1442_001.JPG)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Chess board is 6x6 with 5x5 internal corners
size = (5,5)
ret, corners = cv2.findChessboardCorners(gray,size,None)
ret
有问题的示例图片:
我所说的是那两条水平线。有时它们存在,有时不存在,有时只有1行。
为了避免这个问题,我该怎么做?
答案 0 :(得分:0)
而不是如上所述使用image.CopyToBitmap(bitmap);
。当我为PvStream
Mat mat = new Mat(
rows: height,
cols: width,
type: DepthType.Cv8U,
channels: 1
);
buffer.Buffer.Image.Attach(
aRawBuffer: (byte*)mat.DataPointer, // <-- Needs to be in an `unsafe` method
aSizeX: (uint)width,
aSizeY: (uint)height,
aPixelType: PvPixelType.BayerRG8
);
检索缓冲区时,由于相机捕获了BayerRG8(平均花费约9毫秒),因此我进行了颜色转换:
Mat rgb = new Mat(rows: mat.Rows, cols: mat.Cols, type: DepthType.Cv8U, channels: 3);
CvInvoke.CvtColor(matFromPvBuffer, rgb, ColorConversion.BayerRg2Rgb);
然后保存:
rgb.Bitmap.Save(path, ImageFormat.Jpeg);
似乎我再也没有伪像了。