我有這個矩陣,如何在範圍[0,1]中切換矩陣中的元素?
0 1 0
1 0 1
0 1 0
我想切換每個1值元素爲0,反之亦然:
1 0 1
0 1 0
1 0 1
如果我使用bitwise complement operator即我得到這個結果
255 254 255
254 255 254
255 254 255
cource的我可以得到我想要的一些算術和循環的結果。但是有沒有簡單的方法來實現OpenCV中我想要的矩陣?謝謝。
更新:
這裏是代碼片段:
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
int main()
{
cv::Mat a = (cv::Mat_<uchar>(3,3) << 0, 1, 0,
1, 0, 1,
0, 1, 0);
cv::Mat b = ~a;
std::cout << b << std::endl;
return 0;
}
使用布爾變換? – Shmiddty
Shmiddty:你的建議是可能的,但我不想改變矩陣類型。該矩陣是CV_8U,用於「正常」圖像。對於某些圖像分析,它被標準化爲[0,1],最後再次歸一化爲[0,255]。 – flowfree
你有沒有試過用'!'運營商呢? '〜'操作符只是反轉位。 – Grieverheart