OpenCV如何修改Mat中某像素(某通道的数值)
生活随笔
收集整理的這篇文章主要介紹了
OpenCV如何修改Mat中某像素(某通道的数值)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
有個很好玩的函數
_Tp& Mat::at(int i0, int i1)
這個函數提供了訪問像素點或位置的函數
舉個例子:
如下代碼:
#include <opencv2/core.hpp> #include <opencv2/highgui.hpp> #include <opencv2/imgproc.hpp> #include <opencv2/imgproc/imgproc_c.h>#include <iostream> #include <vector> using namespace std; using namespace cv;void main(){Mat matSrc=imread("1.png",IMREAD_UNCHANGED);Mat matHsv,matInRange;cvtColor(matSrc,matHsv,COLOR_RGB2HSV);inRange(matHsv,Scalar(35,43,46),Scalar(77,255,255),matInRange);matInRange.at<uchar>(0,0)=255;matSrc.at<uchar>(0,0)=255;matSrc.at<uchar>(0,1)=255;matSrc.at<uchar>(0,3)=255;matSrc.at<uchar>(0,4)=255;getchar(); }matInRange是單通道的圖,當他把(0,0)和(0,2)賦值為255時:
運行截圖如下:
?
matSrc調用at進行修改后,運行截圖如下:
是不是很有意思,并且是不是發現可以干很多事!!!!!
總結
以上是生活随笔為你收集整理的OpenCV如何修改Mat中某像素(某通道的数值)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt文档阅读笔记-QQmlApplica
- 下一篇: Qt工作笔记-QML与C++交互