[英]How do you get rid of the blank gap left after cropping an image in opencv c++?
我正在編寫一個程序來分析圖片並將它們裁剪到圖片中的對象周圍。 該程序可以很好地裁剪圖像,但是在側面留下了一個怪異的間隙。
我從以下問題的批准答案中復制了代碼: Opencv c ++檢測並裁剪圖像上的白色區域
我開始的圖像在較大的畫布上看起來像這樣。 我得到了這個結果,但是我想擺脫左側的多余空白,以便裁切超級接近手機外殼的產品。 如果在新選項卡中打開圖像,將會更好看。
請幫忙。 我在Visual Studio 2015中使用opencv和c ++。
由於椒鹽噪聲,無法正確裁剪這張照片。 要消除它,您可以使用中值模糊 。 您可以使用模糊的圖像填充nonBlackList並使用此列表正確裁剪原始圖像。 由於出現噪點后圖像看起來被略微放大,因此您應該嘗試將光圈大小至少設為5以完全消除它。
cv::Mat in = cv::imread("CropWhite.jpg");
cv::Mat blurred;
cv::medianBlur(in, blurred, 5);
...
if(blurred.at<cv::Vec3b>(j,i) != cv::Vec3b(255,255,255))
{
nonBlackList.push_back(cv::Point(i,j));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.