我一直在做一些與opencv和圖像處理工作。每過一段時間我碰到的地方,當我嘗試做手工喜歡這裏的一些像素的修改情況:像素修改不包括整個圖像
cv::Mat newImg = cv::Mat::zeros(img.size(), img.type());
for(int y = 0; y < img.rows; y++)
{
for(int x = 0; x < img.cols; x++)
{
cv::Vec3b intensity = img.at<cv::Vec3b>(y, x);
r = intensity.val[0];
g = intensity.val[1];
b = intensity.val[2];
intensity.val[0] = r - (r * modify - r);
intensity.val[1] = g - (g * modify - g);
intensity.val[2] = b - (b * modify - b);
newImg.at<cv::Vec3b>(y, x) = intensity;
}
}
這將產生具有一個黑盒子,像這樣
新形象現在我只是不明白爲什麼for循環不包括整個照片,我之前設法解決這個問題,但純粹的運氣,仍然不明白爲什麼和這個問題來自哪裏。
所以我的問題簡而言之就是:如何從我的圖像中刪除這個黑盒子?
感謝
我認爲黑色區域發生是因爲您在循環中切換了行/列。 – Diana
看起來很有可能,因爲非黑色區域的高度與寬度相同。嘗試更改x和y。 – Totoro