我有RGB圖像,例如,尺寸2×2的如下:複製OpenCV中的像素值
[ 0, 14, 255, 75, 156, 255;
45, 255, 234, 236, 141, 255]
我想複製每個像素(所有RGB通道的)2×2次,並獲得看起來像的圖像:
[ 0, 14, 255, 0, 14, 255, 75, 156, 255, 75, 156, 255;
0, 14, 255, 0, 14, 255, 75, 156, 255, 75, 156, 255;
45, 255, 234, 45, 255, 234, 236, 141, 255, 236, 141, 255;
45, 255, 234, 45, 255, 234, 236, 141, 255, 236, 141, 255 ]
在Matlab中或Python,我會只需使用kron
函數即可完成此操作,但我無法知道如何在OpenCV C++中輕鬆完成此操作。請注意,這是一個微不足道的例子,我實際上想要通過16x16來複制每個像素,並且在更大的圖像上進行,而不是當然是2x2。
我想'CV :: resize'與插補'INTER_NEAREST'會做的伎倆。發現一個[類似的問題](http://stackoverflow.com/questions/19342543/enlarge-image-pixels-with-opencv),確認調整大小的想法。雖然,我還沒有嘗試/使用過這種插值。 – wendelbsilva
你可以請張貼你將如何做到這一點在Matlab? – Miki
Hi @Miki,你是什麼意思的Matlab?我雖然你的問題是如何使用OpenCV和C++做到這一點。無論如何,我只是嘗試在這裏,它的工作原理。我使用了命令'cv :: resize(m,放大,cv :: Size(m.rows * 20,m.cols * 20),20,20,cv :: INTER_NEAREST);'調整20x的大小(所以我可以查看並驗證結果)。 – wendelbsilva