日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

图像灰度化(C语言实现)

發布時間:2025/3/17 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图像灰度化(C语言实现) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

RGB三色圖變成【0,255】的灰度圖的簡單方法

方法1. 取RGB的平均值,即 pixel(i , j) = R(i , j) + G(i , j) + B(i , j)?

方法2. 顏色空間的轉換(RGB -> YUV),取Y分量(YUV中的 Y表示亮度)計算公式

pixel(i , j) = 0.3 * R(i , j) + 0.59 * G(i , j) + 0.11 * B(i , j)

#include "JpegDecoder.h" #include <stdio.h> #include <opencv2/highgui.hpp> #include <math.h>using namespace JpegCodec;static cv::Mat ConvertToMat(Matrix &mat) {int channel = CV_8UC3;if (mat.channal == 1) channel = CV_8UC1;cv::Mat img(mat.rows, mat.cols, channel); // create a new matrixfor (int i = 0; i < mat.rows * mat.cols * mat.channal; i++){img.data[i] = mat.data[i];}return img; }void ShowImage(Matrix &mat) {cv::Mat img = ConvertToMat(mat);cv::imshow("Bitmap", img); }/* 方法一 */ void Gray(Matrix &dst, Matrix &src) {dst.Create(src.rows, src.cols, 1);for (int i = 0; i < src.rows; i++){for (int j = 0; j < src.cols; j++){int idx = (i * src.rows + j) * 3;dst.data[idx / 3] = (src.data[idx] + src.data[idx + 1] + src.data[idx + 2]) / 3;}} }/* 方法二 */ void Gray(Matrix &dst, Matrix &src) {dst.Create(src.rows, src.cols, 1);for (int i = 0; i < src.rows; i++){for (int j = 0; j < src.cols; j++){int idx = (i * src.rows + j) * 3;dst.data[idx / 3] = 0.3 * src.data[idx] + 0.59 * src.data[idx + 1] + 0.11 * src.data[idx + 2];}} }int main(int argc, char *arrv[]) {JpegDecoder decoder("01.jpg");Matrix mat, dst;decoder.Decoder(mat);Gray(dst, mat);ShowImage(dst);cvWaitKey(0);return 0; }

JpegDecoder:?https://github.com/lzb-cc/JpegCodecs

運行示例

轉載于:https://my.oschina.net/tigerBin/blog/1486684

總結

以上是生活随笔為你收集整理的图像灰度化(C语言实现)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。