c++ - 用opencv放大图像像素

标签 c++ image opencv image-processing

int main(int argc, char** argv){
cv::Mat gray;
cv::Mat resize;
cv::Mat big;
cv::cvtColor(src, gray, CV_BGR2GRAY);
cv::resize(gray, resize, cv::Size(src.rows/2, src.cols/2));
cv::resize(resize, big, cv::Size(src.rows, src.cols));
cv::Mat clone(resize.rows, resize.cols, CV_8U);

for(int y=0;y<resize.rows;y++){
       for(int x=0;x<resize.cols;x++){
           clone.at<uchar>(y,x) = resize.at<uchar>(y,x);

                               }
                                 }
            cv::imshow("clone", clone);

我写了我的代码,我有 2 个问题 1) 如何将 1 个像素放大为 4 个像素?并向他们展示。 2)如何将图像的每个像素放大为图像每个像素的4倍? (不使用插值)

编辑

enter image description here

我想从我的图像中将 1 个像素放大为 4 个像素。 然后所有的像素图像必须放大成更大的图像。

最佳答案

您需要使用最近邻“插值”:cv::INTER_NEAREST(或CV_INTER_NN)与cv::resize() :

cv::resize(gray, enlarged, cv::Size(gray.cols*2, gray.rows*2), cv::INTER_NEAREST);

最近邻调整方案并不是真正的插值。它只是选择原始中最接近的像素。当放大 2 倍时,每个像素将像您的绘图一样被复制 4 次。

关于c++ - 用opencv放大图像像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19342543/

相关文章:

c++ - 使用代理对象延迟更新与 "Avoid unnamed objects with custom construction and destruction"

C++ ofstream 仅从 ifstream 输出最后一行数据

html - div中的图像在图像下方有多余的空间

image - 获取测试脚本的随机图像

c - 如何在我的 cuda 代码中使用 opencv?

c++ - 使用 C++ 从 6 个字节或更多字节生成一个整数

c++ - 如何在C++中调用这个成员函数?

html - 具有纵横比的 SVG 路径背景图像自动缩放

image-processing - Opencv中的位数模糊如何使用模式?

android - 通过修剪 OpenCV 库来减小 android apk 的大小