最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++?opencv學習之圖像像素的邏輯操作

 更新時間:2022年11月10日 10:23:25   作者:打醬油的;  
圖像的像素操作包括讀寫操作、算數(shù)操作、邏輯運算操作等,下面這篇文章主要給大家介紹了關于C++?opencv學習之圖像像素的邏輯操作的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

1.API和相關知識

1. rectangele 繪制矩形

共7個參數(shù)
            第1個參數(shù) 輸入
            第2個參數(shù) 矩形左上坐標
            第3個參數(shù) 矩形右下坐標
            第4個參數(shù) 矩形顏色
            第5個參數(shù) 線寬
                            如果參數(shù) >=0,則表示繪制矩形(如為1,表示繪制的矩形邊為1個像素)
                            如果參數(shù) < 0,則表示填充矩形(如-1,表示填充整個矩形)
            第6個參數(shù) lineType
                            關于圖像鋸齒,有幾種方式處理
                                不管不顧,就用LINE_4 或者 LINE_8
                                消除鋸齒,就用LINE_AA (AA就是反鋸齒)
            第7個參數(shù)  縮小圖像,同時縮短矩形左上頂點與(0,0)位置的距離(一般沒用)
                      0表示不變
                      1表示圖像*1/2,同時距離(0,0)的x方向和y方向距離*1/2
                      2表示圖像*(1/2)^2,同時距離(0,0)的x方向和y方向距離*(1/2)^2

第二種

rectangele
    繪制矩形
        共6個參數(shù)
            第1個參數(shù) 輸入
            第2個參數(shù) 矩形的左上點+往對角方向延伸的距離(x1,x2,延伸長度1,延伸長度2)
            第3個參數(shù) 矩形顏色
            第4個參數(shù) 線寬
                            如果參數(shù) >=0,則表示繪制矩形(如為1,表示繪制的矩形邊為1個像素)
                            如果參數(shù) < 0,則表示填充矩形(如-1,表示填充整個矩形)
            第5個參數(shù) lineType
                            關于圖像鋸齒,有幾種方式處理
                                不管不顧,就用LINE_4 或者 LINE_8
                                消除鋸齒,就用LINE_AA (AA就是反鋸齒)
            第6個參數(shù)  縮小圖像,同時縮短矩形左上頂點與(0,0)位置的距離
                      0表示不變
                      1表示圖像*1/2,同時距離(0,0)的x方向和y方向距離*1/2
                      2表示圖像*(1/2)^2,同時距離(0,0)的x方向和y方向距離*(1/2)^2
 

void QuickDemo::bitwise_demo(Mat& image) {
 
	Mat m1 = Mat::zeros(Size(256, 256), CV_8UC3);
	Mat m2 = Mat::zeros(Size(256, 256), CV_8UC3);
	
	//rectangle有兩種傳參方式,這里分別進行了示范
	rectangle(m1, Point(100, 100), Point(180, 180), Scalar(255, 255, 0), -1, LINE_8,0);
 
	rectangle(m2, Rect(150, 150, 80, 80), Scalar(0, 255, 255), -1, LINE_8, 0);
	
	imshow("m1", m1);
	imshow("m2", m2);
}

2.位運算

在opencv中,圖像的為運算有4種

  • 異或

bitwise_and(m1, m2, dst);

//bitwise_or(m1, m2, dst);

//bitwise_not(m1, dst);

//bitwise_xor(m1, m2, dst);略

2.實例代碼

void QuickDemo::bitwise_demo(Mat& image) {
 
    Mat m1 = Mat::zeros(Size(256, 256), CV_8UC3);
    Mat m2 = Mat::zeros(Size(256, 256), CV_8UC3);
    
    rectangle(m1, Point(100, 100), Point(180, 180), Scalar(255, 255, 0), -1, LINE_4,0);
    
    rectangle(m2, Rect(150, 150, 80, 80), Scalar(0, 255, 255), -1, 0);
    
    Mat dst;
    
    bitwise_and(m1, m2, dst);
    //bitwise_or(m1, m2, dst);
    //bitwise_not(m1, dst);
    //bitwise_xor(m1, m2, dst);
 
    imshow("位運算",dst);
}

補充:OpenCV--C++圖像像素處理-二值化

#include<opencv2/opencv.hpp>
#include<iostream>
#include<vector>
using namespace std;
using namespace cv;
 
int main()
{	
	Mat img = imread("colors.jpg");
	if (img.empty()) {
		cout << "圖片讀取失敗" << endl;
	}
 
	Mat gray;
	cvtColor(img, gray, COLOR_BGR2GRAY);  //將RGB圖像img轉為灰度圖gray
 
	// 彩圖BINARY二值化
	Mat binary, binary_inv;
	threshold(img, binary, 125, 255, THRESH_BINARY);
	threshold(img, binary_inv, 125, 255, THRESH_BINARY_INV);
	imshow("binary", binary);
	imshow("binary_inv", binary_inv);
 
	//灰度圖BINARY二值化
	Mat binary_gray, binary_gray_inv;
	threshold(gray, binary_gray,  125, 255,THRESH_BINARY);
	threshold(gray,  binary_gray_inv,125, 255, THRESH_BINARY_INV);
	imshow("binary_gray", binary_gray);
	imshow("binary_gray_inv", binary_gray_inv);
 
	//灰度圖TOZERO二值化
	Mat tozero_gray, tozero_gray_inv;
	threshold(gray, tozero_gray, 125, 255, THRESH_TOZERO);
	threshold(gray, tozero_gray_inv, 125, 255, THRESH_TOZERO_INV);
	imshow("tozero_gray", binary_gray);
	imshow("tozero_gray_inv", binary_gray_inv);
 
	//灰度圖TRUNC二值化
	Mat trunc_gray;
	threshold(gray, trunc_gray, 125, 255, THRESH_TRUNC);
	imshow("trunc_gray", trunc_gray);
 
	Mat gray_thr = imread("colors.jpg", IMREAD_GRAYSCALE);
	//灰度圖OSTU二值化
	Mat otsu_gray;
	threshold(gray_thr, otsu_gray, 100, 255,THRESH_BINARY |  THRESH_OTSU);
	imshow("trunc_gray", otsu_gray);
 
	//灰度圖triangle二值化
	Mat triangle_gray;
	threshold(gray_thr, triangle_gray, 100, 255, THRESH_BINARY | THRESH_TRIANGLE);
	imshow("triangle_gray", triangle_gray);
 
	//灰度圖自適應二值化
	Mat adapt_mean_gray;
	adaptiveThreshold(gray_thr, adapt_mean_gray, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 55, 0);
	imshow("adapt_mean_gray", adapt_mean_gray);
 
	Mat adapt_gauss_gray;
	adaptiveThreshold(gray_thr, adapt_gauss_gray, 255, ADAPTIVE_THRESH_GAUSSIAN_C, THRESH_BINARY, 55, 0);
	imshow("adapt_gauss_gray", adapt_gauss_gray);
 
	waitKey(0);
	return 0;
}

總結

到此這篇關于C++ opencv學習之圖像像素的邏輯操作的文章就介紹到這了,更多相關C++ opencv圖像像素邏輯操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C語言歸排與計排深度理解

    C語言歸排與計排深度理解

    這篇文章主要為大家詳細的介紹了C語言中計數(shù)排序和歸并排序,歸并排序是創(chuàng)建在歸并操作上的一種有效的排序算法,計數(shù)排序不用比較兩個數(shù)的大小,感興趣的朋友可以參考閱讀
    2023-04-04
  • C語言中函數(shù)指針的三種使用方法總結

    C語言中函數(shù)指針的三種使用方法總結

    這篇文章主要介紹了 C語言中函數(shù)指針的三種使用方法總結的相關資料,希望通過本文大家能夠徹底掌握指針的使用方法,需要的朋友可以參考下
    2017-10-10
  • 深入了解C語言冒泡排序優(yōu)解

    深入了解C語言冒泡排序優(yōu)解

    這篇文章主要介紹了C語言冒泡排序法的實現(xiàn)(升序排序法),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-07-07
  • C語言實現(xiàn)發(fā)送郵件功能

    C語言實現(xiàn)發(fā)送郵件功能

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)發(fā)送郵件功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C語言實現(xiàn)自動分配地址的示例

    C語言實現(xiàn)自動分配地址的示例

    本文介紹了兩種自動分配地址的方法,包括通過宏定義實現(xiàn)地址分配和將EE地址作為一個結構體,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-11-11
  • 一篇文章帶你了解C語言的選擇結構

    一篇文章帶你了解C語言的選擇結構

    這篇文章主要為大家介紹了C語言的選擇結構,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • 關于C++中vector的兩個小tips分享

    關于C++中vector的兩個小tips分享

    這篇文章主要給大家介紹了關于C++中vector的兩個小tips,文中通過示例代碼介紹的非常詳細,對大家學習或者使用C++具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05
  • C++ OpenGL實現(xiàn)三角形的繪制

    C++ OpenGL實現(xiàn)三角形的繪制

    這篇文章主要主要為大家詳細介紹了如何利用C++和OpenGL實現(xiàn)三角形的繪制,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起動手嘗試一下
    2022-06-06
  • C語言實現(xiàn)信號槽的項目實踐

    C語言實現(xiàn)信號槽的項目實踐

    信號槽是觀察者模式的一種實現(xiàn),一個信號就是一個能夠被觀察的事件,本文主要介紹了C語言實現(xiàn)信號槽的項目實踐模具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • Qt?Creator配置opencv環(huán)境的全過程記錄

    Qt?Creator配置opencv環(huán)境的全過程記錄

    最近在PC端QT下配置opencv,想著以后應該會用到,索性記錄下,這篇文章主要給大家介紹了關于Qt?Creator配置opencv環(huán)境的相關資料,需要的朋友可以參考下
    2022-05-05

最新評論

饶平县| 阿拉善左旗| 武义县| 宝丰县| 宣城市| 光泽县| 灵丘县| 达孜县| 兴山县| 元朗区| 广元市| 北海市| 壶关县| 封开县| 大安市| 海丰县| 买车| 高要市| 祁阳县| 长宁区| 同仁县| 屏东市| 芜湖县| 波密县| 合川市| 景谷| 桐柏县| 株洲市| 新竹市| 威信县| 阿克陶县| 靖边县| 尼木县| 福清市| 台中县| 延安市| 大余县| 舟山市| 武功县| 阿坝| 定结县|